Findbugs、PMD、CheckStyles程式碼分析工具介紹
FindBugs、PMD和CheckStyle對比
1. 概要
工具 |
目的 |
檢查項 |
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 重複程式碼 |
【注】以上工具支援Eclipse3.3及更高版本,不支援與Leaf整合
2. FindBugs
1
2
FindBugs 大多數提示有用,值得改
1. 配置無查詢功能,不過縮寫能讓我們很快找到某個規則
2. 提供圖形介面的獨立程式,對jar進行檢測,有報告生成,非常方便
3. 很多功能外掛沒有實現,可獨立使用FindBugs,但沒法同時修改原始碼
² 外掛bug替代法: 使用獨立的FindBugs設定規則,然後到C:\Documents and Settings\XXX\下找.Findbugs_prefs,然後改名覆蓋Eclipse Project下的.fbprefs (先關閉你的Project)
3. PMD
3
比較嚴格
1. 獨立的程式是命令列形式操作
2. 外掛可以配置規則,有獨立顯示問題的檢視,也很方便
3. 一般來說,需要自定義規則才通過檢驗
3.1 Eclipse線上安裝PMD外掛
1.開啟Help – Software Updates – Find and Install |
2.選擇第二項,Next |
3.點選New Remote Site,按圖示輸入 |
3.2 配置PMD規則
1.Window->Preference->PMD->Rules configuration
2. 點選“clear all”先清空預設的規則,然後點選“Import rule set”,找到allLevel.xml匯入,點選“Apply”,“Ok”返回。
3. 選擇工程屬性,選PMD
4. 選擇Enable PMD,就可以啟動PMD(可以根據需要選擇需要哪些規則)
5. 點選“ok”返回。Eclipse會自動重新編譯檔案(速度可能非常慢),為了提高編譯速度,在工程屬性中可以不啟用PMD,而是手工啟動PMD
6. 在工程屬性中,不選擇 Enable PMD,在資源瀏覽器中選擇包或者類檔案,點選右鍵,選擇PMD,選擇Check code with PMD,這樣就只檢查此包或類檔案。
7. 開啟PMD檢視
Window->Show view->Others…
選擇PMD->PMD violations
8. 檢視檢查結果
PMD violations 檢視顯示的即為檢查結果。allLevel的規則檔案只分兩級(PMD預設為5級),點選檢視右上角中的1,或者2可以檢視不同級別的voilations。(按鈕按下去表示顯示此級別的voilations)
9. CheckStyle
過於嚴格
1. 按照Sun的規範太嚴格了,需要自定義規則
2. 外掛自定義規則沒有查詢功能,查詢規則麻煩
3. 只能做檢查,不能修改程式碼,可配合Jalopy使用修改程式碼
可參考以下文件進行學習使用:
4. 附錄
4
4.1 三種Eclipse外掛安裝方式
1. 使用Eclipse的選單欄 Help -> SoftwareUpdates -> Find and install... -> search for new features... ->輸入軟體安裝地址進行安裝
2. 下載外掛檔案,將其解壓縮到Eclipse對應的目錄中。重新啟動Eclipse,如果外掛不能升效,則請將eclipse\configuration\org.eclipse.update目錄刪除後再啟動Eclipse。
3. links檔案方式。舉例說明
以veloeclipse為例,D:\Jwork\Eclipse為你的Eclipse目錄
將外掛放置於D:\Jwork\eclipse_plugins\veloeclipse資料夾
新建檔案D:\Jwork\eclipse\links\veloeclipse.link
檔案內容:path=D:\\Jwork\\eclipse_plugins\\veloeclipse。
重新啟動eclipse,安裝完成。
推薦第三種安裝方式,這樣可以把你的eclipse外掛放在一個獨立的目錄統一管理,多個Eclipse均可以指向這個eclipse外掛目錄。