Java项目SonarQube配置:sonar.java.binaries配置后仍报错求助
我来帮你排查这个头疼的问题!你已经在sonar-project.properties里指定了sonar.java.binaries=bin/A.jar,但还是收到报错,大概率是路径或配置的细节出了问题,咱们一步步来梳理:
先确认路径的正确性
SonarQube是基于sonar-project.properties文件所在的目录来解析相对路径的,你得先检查bin/A.jar这个路径是不是真的相对于配置文件存在。如果拿不准,直接换成绝对路径试试,比如写成sonar.java.binaries=/Users/xxx/your-project/bin/A.jar(根据你的系统调整),看看报错会不会消失。检查JAR包是否包含有效编译类
打开bin/A.jar看看里面有没有.class文件——要是这个JAR是空的,或者只放了资源文件,SonarQube肯定会认为没找到有效的编译类。另外,如果你的项目有多个编译产物(比如多个JAR或者类目录),记得用逗号分隔路径,比如sonar.java.binaries=bin/A.jar,bin/classes。试试指定类目录而非JAR包
有时候直接指向编译生成的.class文件所在的目录会更可靠,比如很多Java项目编译后类文件会放在target/classes(Maven)或者bin/classes目录,把sonar.java.binaries改成这个目录路径,比如sonar.java.binaries=bin/classes,说不定就能解决问题。确认扫描的工作目录
如果你是用命令行执行sonar-scanner,一定要确保是在sonar-project.properties所在的项目根目录下执行的!如果在其他目录运行,相对路径会解析错误,自然找不到指定的JAR。检查Scanner版本兼容性
有些旧版本的SonarQube Scanner对JAR路径的解析可能有bug,试试升级到和你的SonarQube服务器版本匹配的最新Scanner版本,避免版本不匹配导致的问题。
内容的提问来源于stack exchange,提问作者Rakesh Singh Balhara

