Jenkins vs SonarQube:使用特定的JDK运行

时间:2016-11-10 07:32:52

标签: java maven jenkins

我有一个用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一起使用。 请帮忙告诉我。

1 个答案:

答案 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>
...