如何在 Jenkins 中配置 PMD 违规阈值
How to configure PMD violation threshold in Jenkins
我创建了一个 jenkins 作业,下面是 pom 文件。
1. 能否请您提出一种忽略特定 'X' 次 PMD 违规的方法?
2. 此设置是否正确生成 PMD 报告? Jenkins 的目标是全新安装 pmd:check 站点
<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>
PMD Maven 插件不允许设置违规次数的阈值,它要么在第一次违反给定优先级时失败,要么没有。
我可能会做的不是 运行 pmd:check
目标,而是让 maven 生成报告,并使用 Jenkins' PMD plugin 解析报告 xml 和如果需要,构建失败。
Jenkins 的 PMD 插件允许更灵活的阈值配置。
自版本 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>
我创建了一个 jenkins 作业,下面是 pom 文件。 1. 能否请您提出一种忽略特定 'X' 次 PMD 违规的方法? 2. 此设置是否正确生成 PMD 报告? Jenkins 的目标是全新安装 pmd:check 站点
<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>
PMD Maven 插件不允许设置违规次数的阈值,它要么在第一次违反给定优先级时失败,要么没有。
我可能会做的不是 运行 pmd:check
目标,而是让 maven 生成报告,并使用 Jenkins' PMD plugin 解析报告 xml 和如果需要,构建失败。
Jenkins 的 PMD 插件允许更灵活的阈值配置。
自版本 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>