1. 程式人生 > >findBugs 程式碼靜態掃描 學習筆記

findBugs 程式碼靜態掃描 學習筆記

配套的Bug解釋模式

為了有針對性的使用這個工具,減少bug的誤報,提高使用效率,我們選擇了10個左右的bug模式,下面就是對這10個模式的解釋。

這些bug可能會引起程式的效能或邏輯問題.

需要說明的是,findbugs能檢測的bug pattern遠不僅於此,甚至可以定製自己的探測器,因此,這個文件會不斷擴充,同時,也歡迎大家不斷探索和分享使用實踐.

大的分類主要包括以下幾種:

Bad practice

不好的習慣

Correctness

程式碼的正確性

Dodgy

小問題

Malicious code vulnerability

惡意程式碼

Internationalization

國際化問題

Performance

效能問題

Security

安全性問題

Multithreaded currectness

執行緒問題

Experrimental

實驗性問題

findbugs option

class

    巢狀元素指定要分析的類。這個元素必須指定一個location屬性,location屬性的名字為archive檔案(jar,zip等)、目錄或者class檔案。可以為一個findbugs元素指定多個class元素。

auxClasspath

    可選的巢狀元素,用於指定要分析的類所引用的類,但是並不對引用的類進行分析。

sourcePath

    可選的巢狀元素,指定Java原始碼的目錄。

home

    必須的屬性,findbugs的安裝目錄。

quietErrors

    可選的布林型屬性。如果是true的話,報告嚴重的分析錯誤和丟失的類。預設情況下為false。

reportLevel

    可選的屬性。指定優先級別。如果是low的話,那麼報告所有的bug,如果是medium(預設值),報告medium和high優先順序的bug。

output

    可選屬性,設定輸出格式。

stylesheet

    可選屬性,指定生成html時使用的樣式表。

sort

    可選屬性,如果輸出屬性設定為text,該屬性指定是否對輸出結果根據class進行排序,預設為true。

outputFile

    可選屬性,指定輸出檔案。

debug

    可選的布林型屬性,是否列印分析過程中的日誌。預設值為false。

effort

    設定分析工作的等級,可以為min、default和max。

conserveSpace

    和min effort一樣的功能。

workHard

    和max effort一樣的功能。

visitors

    可選屬性,指定逗號分隔的列表,指定要執行的detectors。

omitVisitors

    可選屬性,忽略detectors。摺合visitors屬性類似,只是不指定不執行哪些detectors。

excludeFilter

    可選屬性,指定排除的Filter。

includeFilter

    可選屬性,指定包含的Filter。

projectFile

    可選屬性,指定專案的名稱。

jvmargs

    可選屬性,指定JVM變數。

systemProperty

    系統屬性。

timeout

    可選屬性,指定超市的時間,預設為600,000毫秒,即10分鐘。

failOnError

    可選屬性,指定是否在執行FindBugs出現異常時停止構建過程,預設為false。

errorProperty

    可選屬性,如果在執行FindBugs時發生錯誤,指定屬性的值為true。

warningsProperty

    可選屬性,如果在執行FindBugs時發生警告,指定屬性的值為true。