Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SonarQube是用于验证代码的Java版本_Java_Sonarqube - Fatal编程技术网

SonarQube是用于验证代码的Java版本

SonarQube是用于验证代码的Java版本,java,sonarqube,Java,Sonarqube,我如何知道Java SonarQube的哪个版本验证了代码? 它是JVM的版本吗?如果我的项目基于不同的版本怎么办?默认值为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="${javavers

我如何知道Java SonarQube的哪个版本验证了代码?
它是JVM的版本吗?如果我的项目基于不同的版本怎么办?

默认值为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}"/> 

我确认此属性sonar.java.source仅由PMD工具使用。SonarSource的Java Analyzer使用超集语法,因此可以分析源文件,而不考虑它们所遵循的Java版本

来自SonarCube 8.3文档

使用SonarScanner执行项目分析时,属性 sonar.java.source可以在sonar-project.properties中手动设置。 可接受的格式包括:

“1.X”(例如1.6代表java 6,1.7代表java 7,1.8代表java 8, 等等)“X”(例如7代表java 7,8代表java 8,等等)

在我们的项目中,我们使用JDK11。我们没有明确设置任何内容,它从pom.xml读取

在jenkins上运行时,我可以看到输出

[INFO] Configured Java source version (sonar.java.source): 11

我正在使用SonarRunner或Eclipse插件。如何设置此属性?嗨@algiogia更新了答案。谢谢@Edubliguenti。然而,您的解决方案似乎只适用于PMD。如果我使用集成分析仪(Squid)会怎么样?请您精确说明潜在的问题/限制?我猜你问这个问题是因为你在一些规则上得到了一些误报?嗨@Freddymellet SonaSource。我正在研究SCA工具的替代方案,以决定为我的团队采用哪种工具。有人问我是否可以设置Java级别以及如何设置。你能告诉我支持哪些Java版本吗?我使用的是SonarQube 4.3.1所有Java版本都受支持,只需让SonarQube分析您的Java源文件即可。Java 8->Findbugs的一个限制是还不能分析Java 8字节码,因此不能用于Java 8项目。Findbugs 3.0现在与Java 8兼容
[INFO] Configured Java source version (sonar.java.source): 11