如何在Jenkins中配置PMD违规阈值

时间:2017-02-21 11:55:09

标签: jenkins static-analysis pmd

我创建了一个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>

2 个答案:

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