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