1. 程式人生 > >自定義、定製findbugs掃描型別,忽略指定型別

自定義、定製findbugs掃描型別,忽略指定型別

一、背景介紹         在使用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 配置僅供參考