我在一個 java 項目上運行 SonarQube 掃描儀。在屬性文件中有一個屬性sonar.java.binaries=**/classes來指定項目的類位置。掃描失敗并顯示此錯誤:ERROR: Error during SonarQube Scanner execution
ERROR: Please provide compiled classes of your project with sonar.java.binaries property什么時候:我刪除了該sonar.java.binaries屬性我將sonar.java.binaries屬性設置為null我將屬性設置為sonar.java.binaries=**/classes但在項目目錄中沒有類目錄或有空目錄掃描在以下情況下成功完成:我設置了屬性sonar.java.binaries=**/classes并創建了一個類文件夾,將一個偽造的文件放入其中blabla.class所以我的問題是:如果掃描儀在沒有它們的情況下也可以工作,為什么還需要這些類?
1 回答

jeck貓
TA貢獻1909條經驗 獲得超7個贊
從官方文檔復制:
需要 Java 字節碼
在不提供由
javac
(Android 用戶:Jack 不提供所需.class
文件)和所有項目依賴項(jar 文件)生成的 Java 字節碼的情況下分析 Java 項目是可能的,但會導致誤報數量增加,即合法問題將被分析儀遺漏。從 SonarJava 版本 4.12 開始,具有多個 java 文件的 java 項目需要二進制文件。如果未正確提供,分析將失敗并顯示消息
Please provide compiled classes of your project with sonar.java.binaries property
如果您不使用 Maven 運行分析,請參閱Java 插件和字節碼以了解如何提供 Java 字節碼。
如您所見,字節碼是必需的。如果您不向分析器提供字節碼,那么構建的語法/依賴樹將丟失一些數據,并且您會得到更多的誤報(應該報告但沒有報告的問題)。
添加回答
舉報
0/150
提交
取消