如何在 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>