去年做項目團隊的開發規範管理,整理了相關工具的使用方法,其中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/
(4)選擇適應的版本;
(5)安裝後重啓即可。
(6)PMD窗體顯示到頁面:widows—>open perspective—>other
2、PMD檢查代碼
PMD檢查方式:對一個項目進行檢查,對項目的下級文件進行檢查,對展開的類進行檢查。
檢查方法:右鍵點擊將要檢查的文件選擇PMD選項,選擇Check Code With PMD選項進行代碼檢查。錯誤信息顯示在violation Overview框體中,如下圖所示:
注:Element:檢查的文件
#Violation/LOC(line 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框體中顯示。右鍵點擊框體中顯示的警告信息時,有四個功能選項。
1) Show details:顯示錯誤的詳細信息,如下圖所示:
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 →Preferences→Java 如果顯示 FindBugs 則安裝成功,否則安裝失敗
2、檢查代碼
在你要檢測bug的Project 或Package以及 Class上右擊 如下圖:
檢測結束之後 bug信息將會顯示在 Bug Explorer 中如下圖:
點擊灰色的小蟲子會把bug信息展開,雙擊紅色的小蟲子會定位到bug的位置。