由于JDK功能不受支持,Jenkins Maven编译失败了吗?

时间:2014-02-15 06:00:30

标签: java maven jenkins

每当我使用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也完全更新。

感谢。

2 个答案:

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