SonarQube 在分析你的项目时,发现项目中存在 .java
源文件却没有提供对应的已编译 .class
文件,因此报出了以下异常:
org.sonar.java.AnalysisException: Your project contains .java files, please provide compiled classes with sonar.java.binaries property...
换句话说,Sonar 在做 Java 代码分析时需要看到编译后生成的字节码,否则无法进行完整的语言规则扫描。出现这个问题通常有以下几种原因:
-
未编译就扫描
- 在本地或流水线中没有先执行
mvn compile
/mvn package
/gradle build
等编译命令,导致 Sonar 无法找到.class
文件。
- 在本地或流水线中没有先执行
-
编译目录路径未正确传给 Sonar
- 对于 Maven 项目,编译生成的
.class
文件一般在target/classes
下;Gradle 则一般在build/classes/java/main
下。
- 对于 Maven 项目,编译生成的