自定義、定製findbugs掃描型別,忽略指定型別
阿新 • • 發佈:2018-12-20
一、背景介紹 在使用findbugs對專案程式碼進行掃描時,預設findbugs掃描級別較高,部分可以接受bug也會被掃出來,影響專案整體掃描報告,為嚴重問題的排查及修改增加了難度。
二、配置findbugs忽略檔案,排除檔案
排除檔案findbugs-exclude-bugs.xml,檔案內容如下所示:
<?xml version="1.0" encoding="UTF-8"?> <FindBugsFilter> <Match> <!-- 實體賦值靜態變數,一般初始化時候的操作,忽略不處理--> <!-- Write to static field from instance method--> <Package name="~.*" /> <Bug pattern="ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD" /> </Match> <Match> <!-- 自動裝箱的問題,忽略不處理--> <!-- Boxing/unboxing to parse a primitive excute(Object)--> <Package name="~.*" /> <Bug pattern="DM_BOXED_PRIMITIVE_FOR_PARSING" /> </Match> <Match> <!--自動裝箱的問題,忽略不處理 --> <!-- Primitive value is boxed then unboxed to perform primitive coercion--> <Package name="~.*" /> <Bug pattern="BX_BOXING_IMMEDIATELY_UNBOXED_TO_PERFORM_COERCION" /> </Match> <Match> <!--裝箱後拆箱緊接著裝箱,忽略不處理 --> <!-- Boxed value is unboxed and then immediately reboxed--> <Package name="~.*" /> <Bug pattern="BX_UNBOXING_IMMEDIATELY_REBOXED" /> </Match> <Match> <!--過泛地捕獲異常,將多個異常合併成一個父類異常捕獲 ,忽略不處理--> <!-- Exception is caught when Exception is not thrown--> <Package name="~.*" /> <Bug pattern="REC_CATCH_EXCEPTION" /> </Match> <Match> <!--此程式碼包含檔案物件為一個絕對路徑名(路徑硬編碼),忽略不處理--> <!-- Code contains a hard coded reference to an absolute pathname--> <Package name="~.*" /> <Bug pattern="DMI_HARDCODED_ABSOLUTE_FILENAME" /> </Match> <Match> <!--未明確指定編碼格式,使用系統預設編碼格式,忽略不處理--> <!-- Reliance on default encoding --> <Package name="~.*" /> <Bug pattern="DM_DEFAULT_ENCODING" /> </Match> <Match> <!--get方法獲取的物件,存在可能被修改的問題,忽略不處理--> <!--May expose internal representation by returning reference to mutable object --> <Package name="~.*" /> <Bug pattern="EI_EXPOSE_REP" /> </Match> <Match> <!-- set方法設定的物件存在會被修改的問題,忽略不處理--> <!-- May expose internal representation by incorporating reference to mutable object--> <Package name="~.*" /> <Bug pattern="EI_EXPOSE_REP2" /> </Match> </FindBugsFilter>
三、idea配置findbugs忽略檔案,排除檔案 首先需要在idea中新增FindBugs外掛,接下來配置findBugs忽略檔案: idea -> File -> Other Settings -> Default Settings -> Other Settings -> FindBugs-IDEA -> Filter -> Exclude filter files
注:具體findbugs-exclude-bugs.xml 配置僅供參考