运行 Maven PMD 在本地使用 Sonar 规则集
Running Maven PMD locally using Sonar ruleset
我正在尝试 运行 使用 Maven 在本地进行 pmd。在我的项目中 运行
mvn jxr:jxr pmd:pmd
但收到错误:
net.sourceforge.pmd.RuleSetNotFoundException: Can't find resource 'rulesets/basic.xml' for rule 'UnusedNullCheckInEquals'. Make sure the resource is a valid file or URL and is on the CLASSPATH
这是导出的规则文件的片段:
<?xml version="1.0" encoding="UTF-8"?>
<ruleset>
<rule ref="rulesets/basic.xml/UnusedNullCheckInEquals">
<priority>3</priority>
</rule>
</ruleset>
我更新了 pom 文件以引用自定义规则集:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>3.2</version>
<configuration>
<linkXref>true</linkXref>
<rulesets>
<ruleset>c:\pmd\export.xml</ruleset>
</rulesets>
</configuration>
</plugin>
要导出规则集以便 运行 在本地使用 Maven pmd 是否需要导出此文件 (basic.xml) 和所有其他 xml 文件,它们一起构成 "Sonar Way" 质量概况?如果可以,在 Sonar 上哪里可以访问这些文件?
您可以通过 "Quality Profiles > Sonar Way > Permalinks > PMD" 访问,但我认为 "Sonar Way" pmd 规则默认为空(禁用所有规则)。
此外,请记住,maven-pmd-plugin
的 3.2 版不在 rulesets
中而是在 rulesets/java
中查找规则,因此您可能必须在导出文件中替换该路径(至少是使用 Sonar 4.2 获得的文件)。
最后,我建议不要使用硬编码路径来引用规则集文件,使用类似于:
<ruleset>${project.basedir}/rules/pmd-rules.xml</ruleset>
希望对您有所帮助!
我正在尝试 运行 使用 Maven 在本地进行 pmd。在我的项目中 运行
mvn jxr:jxr pmd:pmd
但收到错误:
net.sourceforge.pmd.RuleSetNotFoundException: Can't find resource 'rulesets/basic.xml' for rule 'UnusedNullCheckInEquals'. Make sure the resource is a valid file or URL and is on the CLASSPATH
这是导出的规则文件的片段:
<?xml version="1.0" encoding="UTF-8"?>
<ruleset>
<rule ref="rulesets/basic.xml/UnusedNullCheckInEquals">
<priority>3</priority>
</rule>
</ruleset>
我更新了 pom 文件以引用自定义规则集:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>3.2</version>
<configuration>
<linkXref>true</linkXref>
<rulesets>
<ruleset>c:\pmd\export.xml</ruleset>
</rulesets>
</configuration>
</plugin>
要导出规则集以便 运行 在本地使用 Maven pmd 是否需要导出此文件 (basic.xml) 和所有其他 xml 文件,它们一起构成 "Sonar Way" 质量概况?如果可以,在 Sonar 上哪里可以访问这些文件?
您可以通过 "Quality Profiles > Sonar Way > Permalinks > PMD" 访问,但我认为 "Sonar Way" pmd 规则默认为空(禁用所有规则)。
此外,请记住,maven-pmd-plugin
的 3.2 版不在 rulesets
中而是在 rulesets/java
中查找规则,因此您可能必须在导出文件中替换该路径(至少是使用 Sonar 4.2 获得的文件)。
最后,我建议不要使用硬编码路径来引用规则集文件,使用类似于:
<ruleset>${project.basedir}/rules/pmd-rules.xml</ruleset>
希望对您有所帮助!