SonarQube 扫描仪:使用非默认 Java

Posted

技术标签:

【中文标题】SonarQube 扫描仪:使用非默认 Java【英文标题】:SonarQube scanner: use non-default Java 【发布时间】:2016-12-30 12:57:27 【问题描述】:

我有一个运行 SonarQube 扫描仪的盒子。默认 JDK 为 7。

我需要使用 JDK 8 运行 sonar-runner,但我希望将默认 JDK 保持在 7。

我尝试在运行sonar-runner 之前更改JAVA_HOME,但没有运气。我也找不到任何可以改变它的属性。

有什么想法吗?

【问题讨论】:

【参考方案1】:

设置 JAVA_HOME 应该可以工作(如果您好奇,请参阅 sonar-scanner source code)。

SonarQube Scanner 2.6.1 对我来说表现良好。 Java 7 的默认设置:

nico@deb-nico:~$ sonar-scanner 
INFO: Scanner configuration file: /home/nico/sq_playground/sonar-scanner-2.6.1/conf/sonar-scanner.properties
INFO: Project root configuration file: NONE
INFO: SonarQube Scanner 2.6.1
INFO: Java 1.7.0_101 Oracle Corporation (64-bit)

强制使用 Java 8:

nico@deb-nico:~$ export JAVA_HOME=/usr/lib/jvm/java-8-oracle/jre
nico@deb-nico:~$ sonar-scanner 
INFO: Scanner configuration file: /home/nico/sq_playground/sonar-scanner-2.6.1/conf/sonar-scanner.properties
INFO: Project root configuration file: NONE
INFO: SonarQube Scanner 2.6.1
INFO: Java 1.8.0_91 Oracle Corporation (64-bit)

看起来不错。请注意,SonarQube Scanner for Jenkins 有一个内置选项,可让您选择扫描仪应使用的 JDK。

【讨论】:

谢谢尼古拉斯。我使用的是sonar-runner 而不是sonar-scanner

以上是关于SonarQube 扫描仪:使用非默认 Java的主要内容,如果未能解决你的问题,请参考以下文章

SonarQube 扫描仪执行错误 [Windows - Linux Master-Slave]

sonarqube配置全指南,集成阿里巴巴p3c规范

sonarqube配置全指南,集成阿里巴巴p3c规范

使用SonarQube+SonarScanner对Java代码进行扫描(Windows环境)

使用SonarQube+SonarScanner对Java代码进行扫描(Windows环境)

詹金斯 - sonarQube 问题 ||声纳扫描仪插件