您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關如何進行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/
(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的位置。
以上就是如何進行PMD和FindBug的代碼質量檢查,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。