2016-11-10 59 views
1

我有一个使用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。 请帮助给我建议。Jenkins vs SonarQube:使用特定的JDK运行

回答

1

我有一个类似的问题。

解决方案是在Jenkins的Job-Configuration中设置JDK8,并将JDK7设置为用于编译源代码,测试源代码和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> 
...