簡體   English   中英

使用Sonar規則集在本地運行Maven PMD

[英]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

這是已導出的rules文件的片段:

<?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上哪里可以訪問這些文件?

您可以通過“質量配置文件>聲納方式>固定鏈接> PMD”訪問,盡管我認為“聲納方式” pmd規則默認為空(所有規則均已禁用)。

此外,在記住的3.2版本maven-pmd-plugin查找規則不是rulesets ,但在rulesets/java ,所以你可能不得不更換在導出的文件(你有聲納4.2至少拿到文件),該路徑。

最后,我建議不要使用硬編碼路徑來引用規則集文件,而應使用類似以下內容的方法:

<ruleset>${project.basedir}/rules/pmd-rules.xml</ruleset>

希望這可以幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM