我正在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
,但在项目目录中没有类dir或有空类在以下情况下扫描成功完成:
sonar.java.binaries=**/classes
,并创建了一个classes文件夹,其中放入了一个伪造文件blabla.class
所以我的问题是:如果扫描仪在没有它们的情况下也能工作,为什么需要这些类?
答案 0 :(得分:0)
需要Java字节码
在不提供
What number of groceries do you wish to purchase?3 What grocery would you like to purchase?Apple What grocery would you like to purchase?Banana What grocery would you like to purchase?Orange ['Apple', 'Banana', 'Orange']
产生的Java字节码的情况下分析Java项目(Android用户:Jack没有提供所需的javac
文件),并且所有项目依赖项(jar文件)都是可以的,但是可以导致假阴性的数量增加,即分析仪将遗漏合法问题。从SonarJava版本4.12开始,具有多个Java文件的Java项目需要二进制文件。如果提供不正确,分析将失败,并显示以下消息
.class
如果您不使用Maven运行分析,请参见Java Plugin and Bytecode,以了解如何提供Java字节码。
如您所见,字节码不是必需的。如果您不向分析器提供字节码,则构建的语法/依赖树将丢失一些数据,并且您会得到更多的假阴性(应报告但未报告的问题)。