我创建了一个jenkins作业,下面是pom文件。 你能否建议一种方法来忽略某个' X' PMD违规的数量? 2.此设置是否正确以生成PMD报告? Jenkins的目标是干净安装pmd:检查网站
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>2.7.1</version>
<configuration>
<linkXRef>false</linkXRef>
<!--<targetJdk>1.6</targetJdk>-->
<failOnViolation>true</failOnViolation>
</configuration>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>2.7.1</version>
<configuration>
<linkXRef>false</linkXRef>
<!--<targetJdk>1.6</targetJdk>-->
<failurePriority>5</failurePriority>
<failOnViolation>true</failOnViolation>
<targetDirectory>./pmdOutput</targetDirectory>
<rulesets>
<ruleset>/rulesets/basic.xml</ruleset>
</rulesets>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jxr-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
</plugin>
</plugins>
</reporting>
答案 0 :(得分:1)
PMD Maven插件不允许设置违规次数的阈值,它在第一次违反给定优先级时失败,或者它没有。
我可能会做的不是运行pmd:check
目标,而是让maven生成报告,并使用Jenkins' PMD plugin来解析报告xml并在需要时使构建失败。
Jenkins的PMD插件确实允许更灵活的阈值配置。
答案 1 :(得分:0)
从版本 3.10.0 开始,PMD具有配置选项 maxAllowedViolations :
https://maven.apache.org/plugins/maven-pmd-plugin/cpd-check-mojo.html#maxAllowedViolations
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<configuration>
<maxAllowedViolations>180</maxAllowedViolations>
</configuration>
</plugin>