用于编译java代码的jdk版本:jenkins vs pom.xml

时间:2014-08-12 03:00:49

标签: maven jenkins

我们正在使用jdk 6编译我们的代码(在jenkins中指定),我试图指定jdk 7从现在开始编译项目。我注意到有些项目在他们的pom.xml中指定了jdk 6。当jenkins指定jdk 7时,我不确定哪一个优先,但是pom.xml表示jdk 6.有什么想法最后一个优先级来编译代码?

1 个答案:

答案 0 :(得分:0)

在JDK中,您可以指定以指定版本的VM为目标的生成的类文件。例如,如果使用JDK 1.7,则可以将目标类文件版本指定为1.7或更低版​​本。

在maven编译器插件中,您可以按如下方式指定源版本和目标版本。

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>${sourceVersion}</source>
                <target>${targetVersion}</target>
            </configuration>
        </plugin>
    </plugins>
</build>

在您的情况下,如果您希望将类编译为java 1.7,则必须将${sourceVersion}指定为1.7,将${targetVersion}指定为1.7

  

当jenkins指定jdk 7但pom.xml表示jdk 1.6

时,我不确定哪一个优先。

如果在Jenkins中使用JDK 7并且pom中的目标版本是1.6,那么这些类将被编译为jdk 1.6版本。

请查看以下链接以获取更多信息。

http://maven.apache.org/plugins/maven-compiler-plugin/examples/set-compiler-source-and-target.html http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javac.html#options