PMD和FindBug的代碼質量檢查

   去年做項目團隊的開發規範管理,整理了相關工具的使用方法,其中PMD、FindBug、CheckStyle是最常用的幾個工具,當然這類工具不能完全替代“走查”。


工具

目的

檢查項

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

重複代碼



一、PMD——Java代碼靜態分析工具

1、在eclipse中安裝PMD

    1)Eclipse中,選擇Help->Install New Software;

(2)在彈出的窗口點擊Add…;

(3)輸入Name,輸入下載地址:https://sourceforge.net/projects/pmd/files/pmd-eclipse/update-site/

wKioL1YHUyGDMc8fAANcLYviheE387.jpg

(4)選擇適應的版本;

wKioL1YHUzuTy0QHAAMBJYm9sUw611.jpg

(5)安裝後重啓即可。

(6)PMD窗體顯示到頁面:widows—>open perspective—>other

 

2PMD檢查代碼

PMD檢查方式:對一個項目進行檢查,對項目的下級文件進行檢查,對展開的類進行檢查。

檢查方法:右鍵點擊將要檢查的文件選擇PMD選項,選擇Check Code With PMD選項進行代碼檢查。錯誤信息顯示在violation  Overview框體中,如下圖所示:

wKiom1YHU0SCLF3jAAIGHuZDb0M593.jpg

注:Element:檢查的文件

#Violation/LOCline of code縮寫)爲:警告個數/源代碼行數x1000

#Violations/Method:警告個數除以方法個數(類中每個方法中的平均錯誤)

#Project:所在項目

右鍵點擊框體的任意位置顯示4個選項按鈕對應的功能爲

1 Filter Resource:是否展示下列工程

2 Filter Priorities: 想要展示的警告等級(5個等級,紅色爲最嚴重的警告)

3 Presentation Type:展示的結構

4 clear PMD violations:清除Violations Outline內的信息

 

3、檢查代碼規範

雙擊“Element“列下面的錯誤元素,顯示警告所在的類文件。錯誤的詳細信息將在Violations Outline框體中顯示。右鍵點擊框體中顯示的警告信息時,有四個功能選項。

wKioL1YHU16ydqNrAAM01C1aZGs147.jpg


1 Show details:顯示錯誤的詳細信息,如下圖所示:

wKioL1YHU2zzfMwnAAJfGE5UkPg636.jpg

 

2 Mark as reviews : 標記警告信息;

3 Remove Violation(s) :清除錯誤信息;

4 clear violations reviews:清除之前標記。

 

4、生成報告

右鍵點擊工程,選擇"PMD"->"Generatereports",在當前工程的根目錄下生成一個reports目錄,該目錄下存放了代碼檢查的結果報告,根據報告,可以定位錯誤所處的包,所處的類,以及錯誤的級別,觸發的規則集及規則,便於我們統計。

 

二、Findbugs

1、在eclipse中安裝Findbugs

1)從http://findbugs.sourceforge.net/downloads.html edu.umd.cs.findbugs.plugin.eclipse_3.0.0.20140706-2cfb468.zip包;

2)將壓縮文件裏面的內容解壓到myeclipse安裝目錄下eclipse\plugins 目錄下;

3)打開Esclipse PreferencesJava 如果顯示 FindBugs 則安裝成功,否則安裝失敗

wKiom1YHU3GQLTPzAAHhpMN2SUw495.jpg

2、檢查代碼

在你要檢測bugProject Package以及 Class上右擊  如下圖:

wKiom1YHU4Giq2qpAAM6scDLvJo807.jpg

檢測結束之後 bug信息將會顯示在 Bug Explorer 中如下圖:

wKiom1YHVkXzWIFvAADHWvqwyYk626.jpg

點擊灰色的小蟲子會把bug信息展開,雙擊紅色的小蟲子會定位到bug的位置。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章