FindBugs
FindBugs
是一個Java靜態(tài)分析工具最岗,用來檢查類或者jar文件镶蹋,查找代碼可能存在的問題衅斩。
FindBugs官網(wǎng)地址:http://findbugs.sourceforge.net/心包。
檢測完成后會生成一份詳細的報告身辨,借助這份報告可以找到潛在的Bug
概龄,比如NullPointException
,還可以檢查特定的資源沒有關(guān)閉
,例如:查詢數(shù)據(jù)庫沒有調(diào)用Cursor.close()
等还惠。
如果采用人工的方式很難發(fā)現(xiàn)類似的bug,有一些Bug
沒有發(fā)現(xiàn)的情況下私杜,直到運行時才出現(xiàn)蚕键。
FindBugs
可以自動化化的分析代碼,幫助我們提高代碼質(zhì)量衰粹。
FindBugs操作的是Java字節(jié)碼锣光,不是源代碼。
Grade配置
apply plugin: "findbugs"
findbugs {
ignoreFailures = true
toolVersion = "3.0.1"
reportLevel="high"
effort = "max"
}
ignoreFailures
的配置在有Bug報告的情況铝耻,是否返回錯誤誊爹,設(shè)置為true的情況下會忽略錯誤蹬刷,設(shè)置為false有錯誤信息時會立即中斷。
潛在錯誤可分為三個等級频丘,它們是在reportLevel中進行設(shè)置:
- high
- medium
- low
默認為medium
办成。
effort
:是分析級別,有三個值可以設(shè)置: max,default,min搂漠。更高的級別提高了分析的精度迂卢,同時也會運行更長的時間,以及消耗更多的內(nèi)存桐汤。
運行FindBugs
運行命令gradle check
可以直接運行findBugs而克,它會運行兩個任務(wù):
- findbugsMain
- findbugsTest
也可以單獨運行命令:
gradle findbugsMain
gradle findbugsTest
生成的報告默認的目錄在build/reports/findbugs
中,也可以通過reportsDir
對生成文件的目錄進行設(shè)置怔毛。
生成文件格式
FindBugs的報告文件默認是xml格式拍摇,生成html格式,需要配置:
tasks.withType(FindBugs) {
reports {
xml.enabled false
html.enabled true
}
}