最近研究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,感覺太專業,沒有使用的必要,配置同上。