每当我使用Maven部署Jenkins构建时,它表示我有1.3 JDK,即使我安装了1.7。
以下是使用增强型for循环时出现的错误日志的图片:
http://gyazo.com/d1c7e297199dbf8a8b6ba23efa5733ba.png
但是,我显然安装了1.7 JDK。
http://gyazo.com/27b85ba9ea25579aa714b0e2586fd618.png
如果有人知道为什么会出现此问题以及如何解决此问题,请在下面发帖。
抱歉,我没有大量的格式化信息,但我不知道为什么会发生这种情况,因为我没有这样一个过时的JDK并且拥有Oracle的最新更新。 Maven和Jenkins也完全更新。
感谢。
答案 0 :(得分:1)
maven的抱怨不是关于你的jdk版本,而是关于编译器的-source参数。较旧的Maven版本使用maven-compiler-plugin的一个版本,默认情况下使用-source和-target 1.3。
因此,您需要做的是将项目配置为使用更高的源和目标级别,以便将每个循环用于:
(摘自https://maven.apache.org/plugins/maven-compiler-plugin/examples/set-compiler-source-and-target.html)
<project>
[...]
<build>
[...]
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
</plugins>
[...]
</build>
[...]
</project>
请注意,简单地设置maven-compiler-plugin的版本实际上就足够了,因为对于版本3.1,默认的是 1.5,但是显式包含源版本和目标版本是一种很好的风格在你的主人pom。
答案 1 :(得分:0)
您可以根据堆栈跟踪将项目设置为使用默认的jdk进行编译。您的默认值是服务器上的%JAVA_HOME%环境变量,可能设置为较旧的jdk。要使用1.7 jdk进行编译,您必须在项目配置中指定它。将jdk :(默认)更改为您的1.7名称..这是jdk。
或者您可以转到maven jdk并将其从(从项目继承)更改为jdk。
已经有与此相关的jenkins打开的问题故障单:https://issues.jenkins-ci.org/browse/JENKINS-755