我正在为我的项目使用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>
该构建在第二种情况下也应该失败。根据我所注意到的,如果最后一条规则(在上面的示例comment.xml中)没有任何代码冲突,那么即使之上的任何规则集(basic.xml,braces.xml等),构建也不会中断。 )有违反代码的行为。我无法理解这种行为背后的原因。有人可以帮我吗?
我发现了问题。 Maven插件版本3.3出现问题。现在我正在使用版本3.1,并且完全相同的代码正在按预期工作。
可悲的是,我没有足够的信誉来发表评论,所以我将向您提出问题的答案:您能预感一下maven 3.3中的哪个Issue引起了错误吗?我想它现在有一个解决方案,但是我面临一个类似的问题,即在3.12版中,不同的规则适用于相同的代码行/错误消息。