http://findbugs.cs.umd.edu/eclipse update site for official releases
findbugs原理:
利用了byte code engineering library 來實現其檢測器,所所有字節碼掃描檢測器都基於Visitor模式。當FindBugs在分析類時,他會在分析方法內容時調用visit(Code)方法,與此累死,findbugs在分析方法正文中的每一個操作碼時條用sawOpcode(int)方法。通過對內容和操作碼與Bug的特徵碼進行比對,來檢測bug,可以說,findbugs的工作方式很想殺毒軟件。
FindBugs包含一下配置
1."Run FindBugs automatically" 選中,當代碼被修改時,findBugs會自動檢查被修改的代碼
2."Detector configuration" 用於配置對那些bug類型進行檢查
3."Report configuration"用於配置bug報告,包括bug的級別和bug的分類檢查
4."Filter files"用於對bug報告進行過濾
- include filter files:配置那些包,那些類,那些方法,那些bug類型等信息出現在bug報告裏
- exclude filter file:配置那些包,那些類,那些方法,那些bug類型等信息從bug報告中去除
- exclude baseline bugs:過濾掉基線bug
自定義filter:
代碼靜態分析工具的一個問題是他們容易爲開發人員指出大量但並非真正問題的問題——僞問題。通過定義filter文件,我們可以將僞問題過濾掉
一個簡單的例子:
<FindBugsFilter>
<Match>
<Class name = "Sample"/>
</Match>
</FindBugsFilter>