我在一个 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
提交
取消