竹子开花的时 发表于 2018-1-7 07:53:50

Jenkins安装和配置FindBugs、PMD、CheckStyle等插件

  最近研究Jenkins的常用插件的使用,主要使用FindBugs、PMD、CheckStyle、Violations、Emma等插件,主要参考了http://blog.csdn.net/dc_726/article/details/9069457,其中这篇文章里提到的使用findbugs的方法与官方文档(https://wiki.jenkins-ci.org/display/JENKINS/FindBugs+Plugin)一样,只提到在Root pom.xml中添加配置<reporting>,经过测试发现,不好用。又查了一些资料,发现配置不全,这篇http://blog.csdn.net/zhaolixin007/article/details/9630947文章里配置比较全,经过测试,可以达到预期的结果。配置如下:
  (1)在pom.xml文件中增加如下代码
<plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>findbugs-maven-plugin</artifactId>
            <version>2.5.1</version>
            <configuration>
                  <threshold>High</threshold>
                  <effort>Default</effort>
                  <findbugsXmlOutput>true</findbugsXmlOutput>
               <findbugsXmlWithMessages>true</findbugsXmlWithMessages>
                  <xmlOutput>true</xmlOutput>
                  <formats><format>html</format></formats>
            </configuration>
         </plugin>
  (2)增加单元测试报告和findbugs报告
<reporting>
      <plugins>
      <!-- To use the plugin goals in your POM or parent POM-->
      <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-report-plugin</artifactId>
            <version>2.14.1</version>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jxr-plugin</artifactId>
            <version>2.1</version>
          </plugin>
      <plugin>
             <groupId>org.codehaus.mojo</groupId>
             <artifactId>cobertura-maven-plugin</artifactId>
          </plugin>
      </plugins>
    </reporting>
配置以上两处,在Jenkins的Goals and options中设置findbugs:findbugs就OK了。

对于PMD的配置,与findbugs类似,按官方文档(http://maven.apache.org/plugins/maven-pmd-plugin/)配置即可,如下:
  

<project>  
...
  
<reporting>
  
<plugins>
  
<plugin>
  
<groupId>org.apache.maven.plugins</groupId>
  
<artifactId>maven-pmd-plugin</artifactId>
  
<version>3.0.1</version>
  
</plugin>
  
</plugins>
  
</reporting>
  
...
  
</project>
  在Jenkins的Goals and options中设置pmd:pmd就OK了。
  对于Checkstyle的配置,比较简单,安装完插件后,在Jenkins的Goals and options中设置checkstyle:checkstyle就OK了。
  


工具

目的

检查项

FindBugs
检查.class

基于Bug Patterns概念,查找javabytecode(.class文件)中的潜在bug

主要检查bytecode中的bug patterns,如NullPoint空指针检查、没有合理关闭资源、字符串相同判断错(==,而不是equals)等

PMD
检查源文件

检查Java源文件中的潜在问题

主要包括:
空try/catch/finally/switch语句块
未使用的局部变量、参数和private方法
空if/while语句
过于复杂的表达式,如不必要的if语句等
复杂类

CheckStyle
检查源文件
主要关注格式

检查Java源文件是否与代码规范相符

主要包括:
Javadoc注释
命名规范
多余没用的Imports
Size度量,如过长的方法
缺少必要的空格Whitespace
重复代码
  

Violations是集中表现以上三个插件的结果,我感觉使用它的前提是要安装以上三个插件。安装后直接选择使用就可以了。  

对于Emma的配置,我根据官方文档的步骤配置,没有成功,就使用了它的一个分支——JaCoCo,这个比较简单,安装后直接选择使用就可以了。  

对于JDepend,感觉太专业,没有使用的必要,配置同上。  
页: [1]
查看完整版本: Jenkins安装和配置FindBugs、PMD、CheckStyle等插件