Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在maven pmd插件中包含捆绑规则集_Maven_Pmd - Fatal编程技术网

如何在maven pmd插件中包含捆绑规则集

如何在maven pmd插件中包含捆绑规则集,maven,pmd,Maven,Pmd,我有一个自定义规则集定义,它引用了捆绑规则集中的一组规则。但是,我在maven pmd插件中解决这些捆绑规则集时遇到问题。这是一个相关的问题,对于这个问题有一个快速而肮脏的解决方案。然而,我想知道这个问题是否有一个干净的解决方案(因为我认为这是一个相当常见的用例,或者?)。 下面我将描述我迄今为止所做的尝试: <build> <pluginManagement> <plugins> ... <plugin

我有一个自定义规则集定义,它引用了捆绑规则集中的一组规则。但是,我在maven pmd插件中解决这些捆绑规则集时遇到问题。这是一个相关的问题,对于这个问题有一个快速而肮脏的解决方案。然而,我想知道这个问题是否有一个干净的解决方案(因为我认为这是一个相当常见的用例,或者?)。 下面我将描述我迄今为止所做的尝试:

<build>
    <pluginManagement>
        <plugins>

...
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-pmd-plugin</artifactId>
                <version>${maven-pmd-plugin.version}</version>
                <configuration>
                    <linkXref>true</linkXref>
                    <rulesets>
                        <ruleset>my_pmd_ruleset.xml</ruleset>
                    </rulesets>
                    <failsOnError>false</failsOnError>
                    <source>${java.source.version}</source>
                    <target>${java.source.version}</target>
                </configuration>
            </plugin>
        </plugins>
    </pluginManagement>
</build>
  • 我试图参考所有使用的捆绑规则集:

    <build>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-pmd-plugin</artifactId>
                <version>${maven-pmd-plugin.version}</version>
                <configuration>
                    <linkXref>true</linkXref>
                    <rulesets>
                        <ruleset>rulesets/java/coupling.xml</ruleset>
                        <ruleset>rulesets/java/design.xml</ruleset>
                        <ruleset>rulesets/java/controversial.xml</ruleset>
                        <ruleset>rulesets/java/codesize.xml</ruleset>
                        <ruleset>rulesets/java/clone.xml</ruleset>
                        <ruleset>rulesets/java/braces.xml</ruleset>
                        <ruleset>rulesets/java/basic.xml</ruleset>
                        <ruleset>rulesets/java/finalizers.xml</ruleset>
                        <ruleset>rulesets/java/imports.xml</ruleset>
                        <ruleset>rulesets/java/unit.xml</ruleset>
                        <ruleset>rulesets/java/logging-jakarta-commons.xml</ruleset>
                        <ruleset>rulesets/java/logging-java.xml</ruleset>
                        <ruleset>rulesets/java/migrating.xml</ruleset>
                        <ruleset>rulesets/java/naming.xml</ruleset>
                        <ruleset>rulesets/java/optimizations.xml</ruleset>
                        <ruleset>rulesets/java/strictexception.xml</ruleset>
                        <ruleset>rulesets/java/strings.xml</ruleset>
                        <ruleset>rulesets/java/sunsecure.xml</ruleset>
                        <ruleset>rulesets/java/typeresolution.xml</ruleset>
                        <ruleset>rulesets/java/unusedcode.xml</ruleset>
                        <ruleset>my_pmd_ruleset.xml</ruleset>
                    </rulesets>
                    <failsOnError>false</failsOnError>
                    <source>${java.source.version}</source>
                    <target>${java.source.version}</target>
                </configuration>
            </plugin>
        </plugins>
    </pluginManagement>
    </build>
    
    maven pmd插件依赖于pmd,因此绑定的规则集应该是类路径的一部分,或者?说明绑定的规则集应使用相对路径定义,自定义规则集应使用绝对路径定义。但是,我认为它也可以通过相对路径读取我的自定义规则集,因为它是类路径的一部分。
    我还尝试了其他方法,例如,在maven pmd插件中明确定义pmd的附加依赖项。然而,到目前为止没有任何成功:\

    错误完全不同:1。_j_单位规则集2中有一个输入错误。一个捆绑规则已从有争议的规则集移动到unusedcode规则集3。最好在maven pmd配置部分中使用以下属性:maxAllowedViolations、violationSeverity、failOnViolation和failsOnError(参见)。顺便说一句,当绑定的规则集在自定义规则集中引用时,on不需要单独加载
    <build>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-pmd-plugin</artifactId>
                <version>${maven-pmd-plugin.version}</version>
                <configuration>
                    <linkXref>true</linkXref>
                    <rulesets>
                        <ruleset>rulesets/java/coupling.xml</ruleset>
                        <ruleset>rulesets/java/design.xml</ruleset>
                        <ruleset>rulesets/java/controversial.xml</ruleset>
                        <ruleset>rulesets/java/codesize.xml</ruleset>
                        <ruleset>rulesets/java/clone.xml</ruleset>
                        <ruleset>rulesets/java/braces.xml</ruleset>
                        <ruleset>rulesets/java/basic.xml</ruleset>
                        <ruleset>rulesets/java/finalizers.xml</ruleset>
                        <ruleset>rulesets/java/imports.xml</ruleset>
                        <ruleset>rulesets/java/unit.xml</ruleset>
                        <ruleset>rulesets/java/logging-jakarta-commons.xml</ruleset>
                        <ruleset>rulesets/java/logging-java.xml</ruleset>
                        <ruleset>rulesets/java/migrating.xml</ruleset>
                        <ruleset>rulesets/java/naming.xml</ruleset>
                        <ruleset>rulesets/java/optimizations.xml</ruleset>
                        <ruleset>rulesets/java/strictexception.xml</ruleset>
                        <ruleset>rulesets/java/strings.xml</ruleset>
                        <ruleset>rulesets/java/sunsecure.xml</ruleset>
                        <ruleset>rulesets/java/typeresolution.xml</ruleset>
                        <ruleset>rulesets/java/unusedcode.xml</ruleset>
                        <ruleset>my_pmd_ruleset.xml</ruleset>
                    </rulesets>
                    <failsOnError>false</failsOnError>
                    <source>${java.source.version}</source>
                    <target>${java.source.version}</target>
                </configuration>
            </plugin>
        </plugins>
    </pluginManagement>
    </build>
    
    [ERROR] Failed to execute goal org.apache.maven.plugins:maven-pmd-plugin:3.0.1:pmd (pmd) on project my_project: An error has occurred in PMD Report report generation. Could not find resource 'rulesets/java/unit.xml'