SonarQube扫描仪:真的需要二进制文件吗?

问题描述 投票:0回答:1

我正在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

什么时候:

  1. 我删除了sonar.java.binaries财产
  2. 我将sonar.java.binaries属性设置为null
  3. 我将属性设置为sonar.java.binaries=**/classes但在项目目录中没有类dir或者有空的

扫描在以下情况下成功完成:

  1. 我设置属性sonar.java.binaries=**/classes,我创建了一个类文件夹,放入一个虚假的文件blabla.class

所以我的问题是:如果扫描仪在没有它们的情况下工作,为什么需要这些类?

java sonarqube sonarqube-scan
1个回答
0
投票

复制自official documentation

Java字节码是必需的

分析Java项目而不提供javac生成的Java字节码(Android用户:Jack不提供所需的.class文件)和所有项目依赖项(jar文件)是可能的,但会导致错误否定数量的增加,即合法问题将被分析仪遗漏。

从SonarJava版本4.12开始,具有多个java文件的java项目需要二进制文件。如果未正确提供,分析将失败并显示消息

Please provide compiled classes of your project with sonar.java.binaries property

如果您没有使用Maven来运行分析,请参阅Java Plugin and Bytecode以了解如何提供Java字节码。

如您所见,不需要字节码。如果您没有使用字节码为分析器提供数据,那么构建的语法/依赖树将丢失一些数据,并且您会得到更多的漏报(应该报告的问题,但不是)。

© www.soinside.com 2019 - 2024. All rights reserved.