【问题标题】:PMD multiple rulesets pass build but single ruleset fails buildPMD 多个规则集通过构建但单个规则集未能构建
【发布时间】:2020-01-20 23:29:12
【问题描述】:

我正在为我的项目使用 PMD maven 插件,我看到其中的行为非常奇怪。以下 pom.xml 配置因 basic.xml 中的违规而导致构建失败-

<configuration>
    <rulesets>
        <ruleset>${project.basedir}\ruleset\basic.xml</ruleset>
        <!-- ruleset>${project.basedir}\ruleset\braces.xml</ruleset>
        <ruleset>${project.basedir}\ruleset\design.xml</ruleset>
        <ruleset>${project.basedir}\ruleset\controversial.xml</ruleset>
        <ruleset>${project.basedir}\ruleset\coupling.xml</ruleset>
        <ruleset>${project.basedir}\ruleset\clone.xml</ruleset>
        <ruleset>${project.basedir}\ruleset\comments.xml</ruleset-->
    </rulesets>
</configuration>

但下面的顺利通过了构建 -

<configuration>
    <rulesets>
        <ruleset>${project.basedir}\ruleset\basic.xml</ruleset>
        <ruleset>${project.basedir}\ruleset\braces.xml</ruleset>
        <ruleset>${project.basedir}\ruleset\design.xml</ruleset>
        <ruleset>${project.basedir}\ruleset\controversial.xml</ruleset>
        <ruleset>${project.basedir}\ruleset\coupling.xml</ruleset>
        <ruleset>${project.basedir}\ruleset\clone.xml</ruleset>
        <ruleset>${project.basedir}\ruleset\comments.xml</ruleset>
    </rulesets>
</configuration>

在第二种情况下构建也应该失败。根据我所注意到的,如果最后一条规则(在上面的示例 cmets.xml 中)没有任何代码违规,那么即使它上面的任何规则集(basic.xml、braces.xml 等),构建也不会中断。 ) 有代码违规。我无法理解这种行为背后的原因。有人可以帮我解决这个问题吗?

【问题讨论】:

  • 您能否发布失败或更好的示例项目,其中包含要点中的失败。
  • 抱歉@UsmanIsmail 迟到了评论。但我在问题中的意思是失败是好的。我的项目根据 basic.xml 存在与代码冲突相关的问题,因此预计会显示失败。但即使我不删除那些违反代码并取消注释其他规则(如上所示),构建也会通过。更多调查表明,如果我在 pom.xml 文件中提到的最后一个规则集(上面示例中的 cmets.xml)没有引发任何违反规则的行为,那么即使项目违反之前提到的其他规则,构建也会成功通过.

标签: java maven maven-plugin pmd


【解决方案1】:

我发现了问题。 Maven 插件版本 3.3 存在问题。现在我使用的是 3.1 版,完全相同的代码按预期工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-09
    • 2018-02-06
    • 2012-11-03
    • 2015-02-18
    • 1970-01-01
    • 2012-02-27
    • 2017-09-21
    • 1970-01-01
    相关资源
    最近更新 更多