FindBugs 是一個 Java 項目的靜態(tài)代碼掃描工具娇掏,它支持的項目類型包括 Maven创肥,Grade唠叛,Ant等绢慢,可以在不運(yùn)行程序的前提下對軟件進(jìn)行潛在 Bug 的分析灿渴,幫助團(tuán)隊在程序運(yùn)行之前就最大程度發(fā)現(xiàn)隱藏較深的問題洛波,提示的內(nèi)容包含真正的權(quán)限和潛在可能發(fā)生的錯誤問題;可以把它與持續(xù)集成工具 Jenkins 進(jìn)行集成骚露,這樣就能在代碼提交后自動對提交的代碼進(jìn)行靜態(tài)掃描蹬挤,找出潛在的代碼問題。
環(huán)境準(zhǔn)備
Jenkins 服務(wù)
運(yùn)行 FindBugs 單元測試的節(jié)點機(jī)器
部署 Java + Maven
Jenkins 上已安裝了 Warnings Next Generation 插件
FindBugs 單元測試項目:?https://gitee.com/ceshiren/iWeb.git
項目的配置
在 Maven 項目的配置 pom.xml 文件中需要把 findbugs-maven-plugin 工具配置上棘幸。
在 jenkins 中建立一個自由風(fēng)格的項目焰扳。
配置好運(yùn)行的節(jié)點機(jī)器,此機(jī)器是環(huán)境準(zhǔn)備中的節(jié)點機(jī)器误续。
配置代碼源吨悍,將被測項目代碼的 git 地址配置到此處。
在構(gòu)建(Build)中點擊增加構(gòu)建步驟(Add build step)蹋嵌,構(gòu)建步驟中選擇執(zhí)行 shell(Execute shell)育瓜。
在構(gòu)建后步驟(Post-build Actions),選擇 Record compiler warnings and static analysis results栽烂。
在靜態(tài)工具中選擇 FindBugs 在 Report File Pattern 配置上?**/findbugsXml.xml?躏仇。
執(zhí)行job
點擊執(zhí)行后,job 將會拉取代碼進(jìn)行靜態(tài)掃描操作腺办,執(zhí)行完成之后在 job 的首頁左下部分有一個 FindBugs Warnings的按鈕焰手。
點擊此按鈕后能展示出來FindBugs找到的問題信息。
點擊每一條問題信息左邊的加號都能進(jìn)入到具體哪行代碼報出了問題怀喉,出問題的具體信息书妻,就能根據(jù)提示的信息去分析可能的出錯,與開發(fā)人員進(jìn)行溝通解決躬拢;多次構(gòu)建操作后就能看到趨勢圖的展示驻子。