我如何知道哪个版本的Java SonarQube验证代码? 它是JVM的版本吗?那么如果我的项目基于不同的版本呢?
答案 0 :(得分:9)
默认值为1.5。
要设置适当的版本,您需要设置sonar.java.source
属性以告知PMD
您的源代码符合哪个Java版本。
可能的值:1.4,1.5或5,1.6或6,1.7或7.从插件的2.2版本开始,此属性也可以设置为1.8或8。
如果您使用 ant任务,只需添加:
<property name="sonar.java.source" value="${javaversion}"/>
如果您使用的是 SonarRunner ,只需将以下行添加到文件<install_directory>/conf/sonar-runner.properties
:
sonar.java.source=1.5
答案 1 :(得分:2)
我确认此属性sonar.java.source仅由PMD工具使用。 SonarSource的Java分析器使用超集语法,因此可以分析源文件,而不管它们遵循的Java版本。
答案 2 :(得分:0)
来自SonarCube 8.3文档
使用SonarScanner进行项目分析时,属性 可以在sonar-project.properties中手动设置sonar.java.source。 可接受的格式为:
“ 1.X”(例如对于Java 6是1.6,对于Java 7是1.7,对于Java 8是1.8, 等等)“ X”(例如Java 7为7,Java 8为8,等等)
https://docs.sonarqube.org/latest/analysis/languages/java/
在我们的项目中,我们使用jdk11。我们没有显式设置任何内容,而是从pom.xml中读取。
在詹金斯上运行时,我可以看到输出
[INFO] Configured Java source version (sonar.java.source): 11