4

我尝试执行以下操作:

  1. 我为我的所有 Maven2 项目定义了一个标准 POM。
  2. 该 POM 包括要使用的工具,以及 PMD 要使用的规则集。
  3. 我已经定义了一个属性来命名这些规则集。

知道这是有效的。我可以定义一个新项目 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 没有找到它。错误消息如下所示:

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

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

[调试] 在 resourceLoader org.codehaus.plexus.resource.load.FileResourceLoader 中找不到资源“auth-pmd-rule-set-3.x-v1-5.xml”。

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

[调试] 在 resourceLoader org.codehaus.plexus.resource.load.ThreadContextClasspathResourceLoader 中找不到资源“auth-pmd-rule-set-3.x-v1-5.xml”。

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

有什么技术可以达到我想要的吗?我想重新定义 PMD 应该使用的规则集,而不重复所有内容的整个定义。

4

1 回答 1

4

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

规则集可能驻留在类路径、文件系统或 URL 中。对于与 PMD 工具捆绑的规则集,您无需指定文件的绝对路径。它将由插件解决。但如果规则集是自定义规则集,则需要指定其绝对路径。

于 2011-02-05T03:17:51.450 回答