我尝试执行以下操作:
直到知道这是有效的。我可以定义一个新项目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应该使用的规则集,而不重复所有内容的整个定义。
答案 0 :(得分:4)
根据错误消息,您可能没有在pom中指定自定义规则集auth-pmd-rule-set-3.x-v1-5.xml
的完整路径。根据{{3}},
规则集可以驻留在 classpath,filesystem或URL。对于 与...捆绑的规则集 PMD工具,您不需要具体说明 文件的绝对路径。它会 通过插件解决。但如果 规则集是一个自定义规则集,你 需要指定其绝对路径。