You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

构建Sonar阶段执行sonar-scanner报错要求配置sonar.java.binaries属性

问题原因

该报错是Java项目执行Sonar静态分析时的必填参数缺失问题:SonarJava插件需要读取项目编译后的.class字节码文件完成部分规则检测,你未配置sonar.java.binaries参数指向类文件存放路径。

解决方法

两种配置方式二选一即可:

方式1:修改sonar-project.properties配置文件

在你的项目根目录的sonar-project.properties文件中新增如下配置,路径按你项目实际编译输出目录调整:

# Maven项目默认编译路径示例
sonar.java.binaries=target/classes
# Gradle项目默认编译路径示例
# sonar.java.binaries=build/classes/java/main

修改配置后直接执行原有扫描命令即可:

/var/lib/jenkins/tools/hudson.plugins.sonar.SonarRunnerInstallation/Sonarqube_scanner/bin/sonar-scanner  -Dproject.settings=sonar-project.properties

方式2:直接在执行命令中追加参数

不需要修改配置文件,直接在原有扫描命令后加-Dsonar.java.binaries参数指定路径即可,示例如下(替换为你实际的class存放路径):

# Maven项目示例
/var/lib/jenkins/tools/hudson.plugins.sonar.SonarRunnerInstallation/Sonarqube_scanner/bin/sonar-scanner  -Dproject.settings=sonar-project.properties -Dsonar.java.binaries=target/classes
Jenkins环境注意事项
  • 确保Sonar扫描阶段排在项目编译阶段之后执行,必须先完成编译生成class文件再执行扫描,否则即使配置了路径也会找不到对应文件
  • 如果是多模块项目,需要指定所有模块的class路径,多个路径用英文逗号分隔即可,示例:sonar.java.binaries=module-a/target/classes,module-b/target/classes
  • 路径排查阶段可以在执行命令后加-X参数输出调试日志,确认配置的路径是否被正确读取

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 17:54:04