SonarQube scanner: use non-default Java

2019-09-03 16:05发布

问题:

I have a box running SonarQube scanner. The default JDK is 7.

I need to run sonar-runner using JDK 8 but I would like to keep the default JDK at 7.

I tried changing JAVA_HOME before running sonar-runner but had no luck. I also couldn't find any properties that can change that.

Any thoughts?

回答1:

Setting JAVA_HOME should work (see sonar-scanner source code if you're curious).

It's behaving well for me with SonarQube Scanner 2.6.1. Default on 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)

Forcing to 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)

Looking good. Note that the SonarQube Scanner for Jenkins has a built-in option to let you choose which JDK the scanner should use.