【问题标题】:Adding a ruleset to PMD?向 PMD 添加规则集?
【发布时间】:2015-02-18 16:34:23
【问题描述】:

我正在尝试将JSP ruleset 添加到使用 PMD 的现有 Maven 构建中。不幸的是,似乎无论我做什么都会出错。如果我添加对我们现有规则集的引用:

<rule ref="rulesets/jsp/basic.xml/NoUnsanitizedJSPExpression"  /> 

我收到此消息(为便于阅读添加了换行符:

Execution DRY of goal org.apache.maven.plugins:maven-pmd-plugin:2.7.1:pmd failed: 
Couldn't find that class Can't find resource rulesets/jsp/basic.xml. 
Make sure the resource is a valid file or URL or is on the CLASSPATH -> [Help 1]

我咨询了this question 并尝试了前导斜杠的各种排列:

<rule ref="/rulesets/jsp/basic.xml/NoUnsanitizedJSPExpression"  />

但我仍然收到上面提到的错误消息。

我已尝试将规则集添加到 Maven 插件(第二个规则集)

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-pmd-plugin</artifactId>
        <configuration>
            <rulesets>
                <ruleset>${project.basedir}/src/main/resources/properties/pmd_workspace.xml</ruleset>
                <ruleset>rulesets/jsp/basic.xml</ruleset>
            </rulesets>
        </configuration>
        <executions>
            <execution>
                <id>DRY</id>
                <phase>test</phase>
                <goals>
                    <goal>cpd</goal>
                    <goal>pmd</goal>
                </goals>
            </execution>
        </executions>
    </plugin>  

但这只是给了我这个错误:

An error has occurred in PMD Report report generation. Could not find resource 'rulesets/jsp/basic.xml'. -> [Help 1]

我查看了 PMD 和 Maven PMD 插件的文档,但没有运气。任何人都可以帮助或指向我的教程吗?

【问题讨论】:

    标签: java jsp maven pmd


    【解决方案1】:

    原来这是因为我使用的是旧版本的 Maven PMD 插件。 Maven 插件自己拉入 PMD,这很方便,但无法控制它拉入的版本。

    我使用的版本 2.7.1 引入了 PMD 版本 4.3,它没有我试图包含的规则。因此,它(正确地)声明它找不到该规则。

    Maven PMD 插件的当前版本 3.3 引入了 PMD 版本 5.2.1,其中包含 NoUnsanitizedJSPExpression JSP 检查规则。

    我将 maven PMD 插件更新到 3.3 版后,一切正常:

                        <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-pmd-plugin</artifactId>
                            <version>3.3</version>
                            <configuration>
                                <rulesets>
                                    <ruleset>${project.basedir}/src/main/resources/properties/pmd_workspace.xml</ruleset>
                                </rulesets>
                            </configuration>
                        </plugin>  
    

    【讨论】:

    • 应该在哪里添加这个规则参考
    猜你喜欢
    • 2011-08-09
    • 2012-11-03
    • 1970-01-01
    • 2018-02-06
    • 1970-01-01
    • 2015-08-25
    • 2017-09-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多