2014-12-02 66 views
0

我正在使用PMD maven插件为我的项目,我看到它非常奇怪的行为。下面的pom.xml配置失败,违反建设basic.xml -PMD多个规则集传递构建但单个规则集失败构建

<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> 

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

+0

你可以发布故障还是更好的一个示例项目与故障的要点。 – 2014-12-02 18:39:32

+0

很抱歉对@UsmanIsmail发表评论。但我的意思是说失败是好的。我的项目出现了与basic.xml相关的代码违例问题,因此预计会显示失败。但即使我不删除这些代码违规,并取消注释其他规则(如上所示),然后构建通过。更多的调查显示,如果我在pom.xml文件中提到的最后一个规则集(上面的示例中的comments.xml)没有抛出任何违反规则的情况,那么即使项目违反了前面提到的其他规则,构建也会成功传递。 – Siddharth 2014-12-08 03:26:52

回答

1

我发现了这个问题。 Maven Plugin 3.3版存在一个问题。现在我正在使用版本3.1,并且完全相同的代码按预期工作。