使用FindBugs對Java代碼進行靜態(tài)分析

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
    }
}

參考

Android-使用FindBugs

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末馆截,一起剝皮案震驚了整個濱河市充活,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蜡娶,老刑警劉巖混卵,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異窖张,居然都是意外死亡幕随,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門宿接,熙熙樓的掌柜王于貴愁眉苦臉地迎上來赘淮,“玉大人,你說我怎么就攤上這事睦霎∩倚叮” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵副女,是天一觀的道長蛤高。 經(jīng)常有香客問我,道長碑幅,這世上最難降的妖魔是什么戴陡? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮沟涨,結(jié)果婚禮上恤批,老公的妹妹穿的比我還像新娘。我一直安慰自己裹赴,他們只是感情好喜庞,可當我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布诀浪。 她就那樣靜靜地躺著,像睡著了一般赋荆。 火紅的嫁衣襯著肌膚如雪笋妥。 梳的紋絲不亂的頭發(fā)上懊昨,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天窄潭,我揣著相機與錄音,去河邊找鬼酵颁。 笑死嫉你,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的躏惋。 我是一名探鬼主播幽污,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼簿姨!你這毒婦竟也來了距误?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤扁位,失蹤者是張志新(化名)和其女友劉穎准潭,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體域仇,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡刑然,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了暇务。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片泼掠。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖垦细,靈堂內(nèi)的尸體忽然破棺而出择镇,到底是詐尸還是另有隱情,我是刑警寧澤括改,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布沐鼠,位于F島的核電站,受9級特大地震影響叹谁,放射性物質(zhì)發(fā)生泄漏饲梭。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一焰檩、第九天 我趴在偏房一處隱蔽的房頂上張望憔涉。 院中可真熱鬧,春花似錦析苫、人聲如沸兜叨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽国旷。三九已至矛物,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間跪但,已是汗流浹背履羞。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留屡久,地道東北人忆首。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像被环,于是被迫代替她去往敵國和親糙及。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 一筛欢、介紹 Findbugs浸锨,它是一個靜態(tài)分析工具,它檢查類或者jar文件版姑,將字節(jié)碼和一組缺陷模式進行對比以發(fā)現(xiàn)可能...
    _Justin閱讀 9,151評論 2 19
  • 1.前言: 一個免費的 Android Studio插件柱搜,可以在開發(fā)早期檢測出常見的 Java bug."我們通常...
    firfox閱讀 2,834評論 0 1
  • 選自:https://www.wolfcstech.com/2018/04/03/jenkins_deployme...
    晚云落閱讀 2,189評論 1 2
  • 前言 在團隊Android項目開發(fā)過程中,難免會出現(xiàn)一些比較不容易發(fā)現(xiàn)漠酿,但是又比較低級的bug冯凹。而且因為每個開發(fā)人...
    宇是我閱讀 5,051評論 3 19
  • 黎明之前 靜靜憂傷 我已經(jīng)沒有了曙光 慢啄文字刻畫遠方 詩和遠方 欺騙互相 假想我新娘的模樣 那凝望織女的牛郎 情...
    寂滅的一閱讀 164評論 0 1