簡體   English   中英

FindBugs命令行:如何指定要分析的項目?

[英]FindBugs command line: how to specify the project to be analyzed?

我試圖在命令行中運行FindBugs ,並在指定要分析的項目時遇到麻煩。 我理解FindBugs在字節碼(.jar,.class)上工作,所以我寫了一個HelloWorld程序並確保它有一些凌亂的代碼可以被FindBugs檢測到。

然后我嘗試了:

java -jar D:/findbugs-2.0.3/lib/findbugs.jar -project HelloWorld/bin

哪個例外:

java.lang.IllegalArgumentException: Can't read project from HelloWorld/bin
              at edu.umd.cs.findbugs.Project.readProject(Project.java:774)

我也試過.class和.jar文件,但沒有出現:

java -jar D:/findbugs-2.0.3/lib/findbugs.jar -project HelloWorld/bin/Main.class
java -jar D:/findbugs-2.0.3/lib/findbugs.jar -project HelloWorld.jar

我說,我檢查了FindBugs手冊中有關命令行選項“-project”的信息

您指定的項目文件應該是使用GUI界面創建的項目文件。 它通常以擴展名.fb或.fbp結尾

我不明白這一點。 這是否意味着需要進行一些預處理,FindBugs不能直接檢查任意.jar或.class或項目? 我如何獲得.fb或.fbp擴展名?

謝謝。

該過程在FindBugs網站上描述:

  • 確保下載包含GUI(稱為Swing界面 )的FindBugs發行版。
  • 解壓縮下載的ZIP並將其bin文件夾添加到PATH。
  • 鍵入findbugs以打開GUI,然后單擊“ 新建項目”
  • 在對話框中:
    • 輸入項目名稱,比如HelloWorld
    • 如果要使用Classpath進行分析 ,請將其與.class文件或.class文件所在的目錄(例如build/classes/main或其他內容)一起提供給它:包結構必須在此目錄中啟動。
    • 在其中顯示輔助類路徑的位置 ,列出加載類所需的任何庫。
    • 源目錄的工作方式與Classpath類似,可用於分析 ,但適用於.java文件。 FindBugs使用它來向您顯示代碼中您的問題所在。
    • 您可以選擇(cloud disabled)作為錯誤存儲。
  • 單擊“ 分析”
  • 現在,您可以將項目配置保存為.fbp項目文件。

下次,您可以通過運行開始分析

java -jar D:/findbugs-2.0.3/lib/findbugs.jar -project HelloWorld.fbp

如果您不想或不能使用GUI,則可以通過在findbugs.jar之后添加-textui選項作為第一個選項來獲取純文本版本。 輸出格式和行為通過其他命令行選項配置。

但是,大多數人使用與IDE集成的FindBugs,或者作為構建過程的一部分。 這兩個用例都不需要GUI或命令行版本。 看看你的IDE的插件,它可以節省你很多時間,它們真的很容易使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM