【问题标题】:Resolve pmd rulesets in Maven locally在本地解析 Maven 中的 pmd 规则集
【发布时间】:2011-06-21 12:45:14
【问题描述】:

我尝试执行以下操作:

  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 没有找到它。错误消息如下所示:

[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 应该使用的规则集,而不重复所有内容的整个定义。

【问题讨论】:

    标签: maven-2 pmd


    【解决方案1】:

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

    规则集可能位于 类路径、文件系统或 URL。为了 与 PMD 工具,您无需指定 文件的绝对路径。它会 由插件解决。但如果 规则集是自定义规则集,您 需要指定其绝对路径。

    【讨论】:

    • 宾果游戏。这是主要的障碍。我不确定该解决方案是否是最好的解决方案,但它现在找到(更改的)配置文件,并且只使用它。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-27
    • 2011-08-09
    • 1970-01-01
    • 2013-02-14
    • 2012-11-03
    • 2015-02-18
    • 1970-01-01
    相关资源
    最近更新 更多