sonar.java.binaries的配置

从sonarQube 4.12开始,sonar将会进行程序的动态检查,不配置sonar.java.binaries属性将会出错

From SonarJava version 4.12 binary files are required for java projects with more than one java file. If not provided properly, analysis will fail with the message
Please provide compiled classes of your project with sonar.java.binaries property

(官方文档链接)


以一个典型的java项目为例,.java源文件放在src目录下,编译完的class放在bin目录下,项目目录结构如下:

HelloWorld

  • sonar-project.properties
  • src
  • bin

我们在HelloWorld文件夹下配置sonar-project.properties文件如下

sonar.projectKey=calculator
sonar.projectName=calculator
sonar.projectVersion=1.0
sonar.sourceEncoding=UTF-8
sonar.language=java
sonar.modules=java-module

java-module.sonar.projectName=Java module

# 正确的配置
java-module.sonar.sources=src
java-module.sonar.projectBaseDir=.
sonar.java.binaries=bin
# 错误的配置
java-module.sonar.sources=.
java-module.sonar.projectBaseDir=src
sonar.java.binaries=bin
# 后面的配置会报出无法找到bin文件的错误

有评论表示这个方法不太可行,并提供了另外一种解决方案,贴在这里供参考

埃黎莉莉:照着添加这个配置文件没用,我自己观察发现是因为sonarQube扫描的对象是.class而不是.java文件,所以我直接扫描命令的时候先mvn compile了一下,也就是说直接执行下面的命令,就可以了。

mvn compile sonar:sonar -Dsonar.projectKey=xxx -Dsonar.host.url=xxx -Dsonar.login=xxx

你可能感兴趣的:(Java)