在本地解析Maven中的pmd规则集

时间:2011-02-04 17:42:16

标签: maven-2 pmd

我尝试执行以下操作:

  1. 我为所有Maven2项目定义了标准POM。
  2. POM包含要使用的工具,PMD包含要使用的规则集。
  3. 我已经定义了一个属性,为每个规则集命名。
  4. 直到知道这是有效的。我可以定义一个新项目POM,在那里使用我的标准POM作为父项,并使用那里定义的规则集。我甚至可以覆盖用另一个名称定义规则集的属性的定义。

    我已将其定义为auth-pmd-rule-set-3.x-v1-5.xml而不是pmd-rule-set-3.x-v1-5.xml(然后由Maven2选择)并在我的新项目中本地包含文件auth-pmd-rule-set-3.x-v1-5.xml(在src/main/resources下) )。但是Maven找不到它。错误消息如下所示:

      

    [DEBUG]准备规则集:auth-pmd-rule-set-3.x-v1-5.xml

         

    [DEBUG]之前:auth-pmd-rule-set-3.x-v1-5.xml之后:auth-pmd-rule-set-3.x-v1-5.xml

         

    [DEBUG]在resourceLoader org.codehaus.plexus.resource.loa中找不到资源'auth-pmd-rule-set-3.x-v1-5.xml'   der.FileResourceLoader。

         

    [DEBUG]在resourceLoader org.codehaus.plexus.resource.loa中找不到资源'auth-pmd-rule-set-3.x-v1-5.xml'   der.JarResourceLoader。

         

    [DEBUG]在resourceLoader org.codehaus.plexus.resource.loa中找不到资源'auth-pmd-rule-set-3.x-v1-5.xml'   der.ThreadContextClasspathResourceLoader。

         

    [DEBUG] URLResourceLoader:在''查找'auth-pmd-rule-set-3.x-v1-5.xml'时出现异常   java.net.MalformedURLException:无协议:auth-pmd-rule-set-3.x-v1-5.xml

    是否有任何技术可以达到我想要的效果?我想重新定义PMD应该使用的规则集,而不重复所有内容的整个定义。

1 个答案:

答案 0 :(得分:4)

根据错误消息,您可能没有在pom中指定自定义规则集auth-pmd-rule-set-3.x-v1-5.xml的完整路径。根据{{​​3}},

  

规则集可以驻留在   classpath,filesystem或URL。对于   与...捆绑的规则集   PMD工具,您不需要具体说明   文件的绝对路径。它会   通过插件解决。但如果   规则集是一个自定义规则集,你   需要指定其绝对路径。