Jenkins 不会使用 Java 7 编译器

Jam*_*unn 2 java maven jenkins

我正在与一个 Maven 项目的团队合作,我在 Jenkins 中为它设置了一个构建作业。

最近,团队中的某个人添加了打开字符串的代码。这导致 Jenkins 中的构建失败,并出现以下错误:

error: strings in switch are not supported in -source 1.5
Run Code Online (Sandbox Code Playgroud)

所以我当然意识到 Jenkins 需要使用 Java 7,而不是 Java 5。

首先,我远程进入服务器,打开一个 cmd,然后执行where javajava -version. 我检查了我的环境变量和我的路径。一切都指向同一个 Java 7 jdk 目录:C:\Java\jdk1.7.0_21.

然后我检查了 Jenkins,看它是否配置为使用正确的 JDK。这是: 詹金斯JDK

事实上,这是 Jenkins 服务器设置使用的唯一 Java,也是服务器中唯一安装的 Java。

作为最后的手段,我在 Jenkins 中安装了 JDK 参数插件。然后我将项目设置为使用 Java 7 参数:

参数JDK

但是,我仍然遇到相同的错误。

我错过了什么吗?什么可能导致这种情况?最重要的是,我该如何解决它并让 Jenkins 使用-source 1.7而不是-source 1.5

jed*_*son 5

检查您的 pom.xml 以及那里指定的 Java 版本(源代码)。那可能是从哪里来的source 1.5

<properties>
   <jee.level>1.4</jee.level>
   <jdk.level>1.5</jdk.level>
</properties>

<plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-compiler-plugin</artifactId>
   <configuration>
       <source>${jdk.level}</source>
       <target>${jdk.level}</target>
   </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)