You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用SonarQube 6.5与Sonar Scanner 3.0.3扫描时遇sonar.java.binaries报错求助

解决SonarQube扫描时的sonar.java.binaries缺失错误

这个报错是因为SonarQube的Java代码分析器需要读取项目编译后的class文件才能完成深度分析,而你当前没有指定这些编译文件的存储路径,所以触发了这个异常。下面给你几种实用的解决方式:

1. 扫描命令中直接指定路径

如果你的项目是Maven结构,编译后的class文件默认在target/classes;如果是Gradle结构,一般在build/classes。你可以在执行sonar-scanner时直接追加参数指定路径:

sonar-scanner -Dsonar.java.binaries=target/classes

如果有多个class文件目录(比如包含测试类的目录),用逗号分隔即可:

sonar-scanner -Dsonar.java.binaries=target/classes,target/test-classes

2. 通过配置文件持久化设置

在项目根目录创建或编辑sonar-project.properties文件,添加以下配置(替换成你实际的class文件路径):

sonar.java.binaries=target/classes

要是你做的是多模块项目,可以针对每个模块单独配置路径,或者使用相对路径适配不同模块的结构。

3. 务必先完成项目编译

别忘了在执行扫描命令前,先编译你的Java项目!比如Maven项目先执行mvn clean compile,Gradle项目执行gradle build,不然就算指定了路径,目录里没有class文件,还是会触发同样的错误。

额外省心小技巧

如果你用的是Maven或Gradle的Sonar专用插件(比如sonar-maven-plugin),其实根本不需要手动指定sonar.java.binaries——插件会自动识别项目编译后的文件路径。这种情况下直接用插件执行扫描更省事:
Maven示例:

mvn sonar:sonar

Gradle示例:

gradle sonarqube

内容的提问来源于stack exchange,提问作者user1823924

火山引擎 最新活动