我有一个用JDK 1.7和Sonarqube 6.0构建和编译的项目,只能用JDK 1.8运行。 在Jenkins仪表板上,我设置了目标::org.codehaus.mojo:sonar-maven-plugin:LATEST:sonar ,在sonarqube文件夹上的wrapper.conf中,我更改了 wrapper.java.command = C:\ Program Files \ Java \ jdk1.8.0_91 \ bin \ java ,Jenkins JDK设置为1.7 ....但Sonar不能与JDK 1.8一起使用。 请帮忙告诉我。
答案 0 :(得分:1)
我有类似的问题。
解决方案是将JDK8设置为在Jenkins的Job-Configuration中使用,并将JDK7设置为用于编译源代码,test-sources和surefire插件。
这样的事情:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<source>1.5</source>
<target>1.5</target>
<testSource>1.7</testSource>
<testTarget>1.7</testTarget>
<verbose>true</verbose>
<fork>true</fork>
<executable>C:\java\jdk1.7.0_25\bin\javac</executable>
<compilerVersion>1.7</compilerVersion>
</configuration>
<executions>
<execution>
<id>test-compile</id>
<phase>process-test-sources</phase>
<goals>
<goal>testCompile</goal>
</goals>
<configuration>
<fork>true</fork>
<executable>C:\java\jdk1.7.0_25\bin\javac</executable>
<source>1.5</source>
<target>1.5</target>
<compilerVersion>1.7</compilerVersion>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<jvm>C:\java\jdk1.7.0_25\bin\java</jvm>
<forkMode>once</forkMode>
</configuration>
</plugin>
如果它适合您,您可以在settings.xml中设置JDK的路径,并在您的pom.xml中使用该设置,以便每个环境/开发人员都可以使用自己的JDK。
<profile>
<id>jdk7</id>
<properties>
<JDK_1_7_HOME>C:\java\jdk1.7.0_25</JDK_1_7_HOME>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
你的pom.xml
...
<executable>${JDK_1_7_HOME}/bin/javac</executable>
...