1 、 FindBugs 介紹
FindBugs 是一款 Java 靜態(tài)代碼分析工具,與其他靜態(tài)分析工具(如 Checkstyle 和 PMD )不同, FindBugs? 不注重樣式或者格式,它專注于尋找真正的缺陷或者潛在的性能問題 , 它可以幫助 java 工程師提高代碼質(zhì)量以及排除隱含的缺陷。有了靜態(tài)分析工具,就可以在不實(shí)際運(yùn)行程序的情況對(duì)軟件進(jìn)行分析。
最新版本是 1.3.9.20090821 ,下載地址 http://findbugs.sourceforge.net/downloads.html 。
FindBugs 運(yùn)用 Apache?BCEL? 庫(kù)分析類文件( class 文件)而不是源代碼,將字節(jié)碼與一組缺陷模式進(jìn)行對(duì)比以發(fā)現(xiàn)可能的問題。 FindBugs 的檢測(cè)器已增至 300 多條,被分為不同的類型,常見的類型如下:
·? 正確性( Correctness ):這種歸類下的問題在某種情況下會(huì)導(dǎo)致 bug ,比如錯(cuò)誤的強(qiáng)制類型轉(zhuǎn)換等。
·? 最佳實(shí)踐反例( Bad?practice ):這種類別下的代碼違反了公認(rèn)的最佳實(shí)踐標(biāo)準(zhǔn),比如某個(gè)類實(shí)現(xiàn)了 equals 方法但未實(shí)現(xiàn) hashCode 方法等。
·? 多線程正確性( Multithreaded?correctness ):關(guān)注于同步和多線程問題。
·? 性能( Performance ):潛在的性能問題。
·? 安全( Security ):安全相關(guān)。
·? 高危( Dodgy ): FindBugs 團(tuán)隊(duì)認(rèn)為該類型下的問題代碼導(dǎo)致 bug 的可能性很高。
?
2、 在 Eclipse 中安裝 FindBugs 插件
??? 下載 Eclipse?plugin? 的版本, 解壓 zip 文件。
???將解壓后的文件放到 Eclipse 的 Plugin 中。
???重新啟動(dòng) Eclipse? 。
?
????我使用的是 MyEclipse8.5 可能路徑和大家的不太一樣,我是放到了路徑 Genuitec/MyEclipse?8.5/dropins 下面
?
?
3、 在 Eclipse 中使用 FindBugs
重新啟動(dòng) eclipse
打開 FindBugs 視圖
?
?
執(zhí)行 Find?Bug? 任務(wù)
右鍵單擊你要檢測(cè)的工程、包或文件, -->Find?Bugs-->Find?Bugs 。
check 完成后將在 Bug?Explorer 視圖中看到問題列表,該列表以問題類型組織。
?
?
?
展開列表,雙擊列表中具體的問題就可以定位的具體的代碼行。
?
?
?
?
4
、
配置
FindBugs
在
這里
可以對(duì)
FindBugs
規(guī)則等進(jìn)行詳細(xì)設(shè)置。?
選擇你的項(xiàng)目,右鍵?
=>?Properties?=>?FindBugs?=>
?
1?
Run?Automatically
開關(guān)
當(dāng)此項(xiàng)選中后,
FindBugs
將會(huì)在你修改
Java
類時(shí)自動(dòng)運(yùn)行,如你設(shè)置了
Eclipse
自動(dòng)編譯開關(guān)后,當(dāng)你修改完
Java
文件保存,
FindBugs
就會(huì)運(yùn)行,并將相應(yīng)的信息顯示出來。
當(dāng)此項(xiàng)沒有選中,你只能每次在需要的時(shí)候自己去運(yùn)行
FindBugs
來檢查你的代碼。
2?
Detector?
Configuration
選擇項(xiàng)
在這里你可以選擇所要進(jìn)行檢查的相關(guān)的
Bug?Pattern
條目
,
你可以根據(jù)需要選擇或去掉相應(yīng)的?檢查條件。
?
3?
Minimum?priority?to?report
選擇項(xiàng)
這個(gè)選擇項(xiàng)是讓你選擇哪個(gè)級(jí)別的信息進(jìn)行顯示,有
Low
、
Medium
、
High
三個(gè)選擇項(xiàng)可以選擇,很類似于
Log4J
的級(jí)別設(shè)置啦。?比如:
你選擇了
High
選擇項(xiàng),那么只有是
High
級(jí)別的提示信息才會(huì)被顯示。
你選擇了
Medium
選擇項(xiàng),那么只有是
Medium
和
High
級(jí)別的提示信息才會(huì)被顯示。
你選擇了
Low
選擇項(xiàng),那么所有級(jí)別的提示信息都會(huì)被顯示。
4?
Report?
bug?categories
選擇項(xiàng)
在這里是一些顯示
Bug
分類的選擇:
Malicious?code?vulnerability
關(guān)于惡意破壞代碼相關(guān)方面的
Correctness
關(guān)于代碼正確性相關(guān)方面的
Internationalization
關(guān)于代碼國(guó)際化相關(guān)方面的
Performance
關(guān)于代碼性能相關(guān)方面的
Multithreaded?correctness
關(guān)于代碼多線程正確性相關(guān)方面的
另外 FindBugs 有 UI 頁面,可以單獨(dú)運(yùn)行。也可以通過 Ant 以及命令行方式運(yùn)行。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元

