当Jenkins执行Maven时,Maven使用不正确的Java版本

我有一些与Maven和Jenkins编译和部署的项目,直到现在我已经将Java版本从6更改为7。

为了做到这一点,我执行了命令sudo update-alternatives –config javac,并更改了/ etc / profile文件中的JAVA_HOME和PATH的值。 我也修改了POM文件,所以它使用JDK 1.7:

<properties> ... <jdk.version>1.7</jdk.version> </properties> <plugin> <artifactId>maven-compiler-plugin</artifactId> ... <configuration> <source>${jdk.version}</source> <target>${jdk.version}</target> </configuration> </plugin> 

当我在控制台上执行它们时,它们编译得很好,显示的版本是正确的:

 javac -version javac 1.7.0_55 mvn install -debug Apache Maven 2.2.1 (rdebian-8) Java version: 1.7.0_55 Java home: /usr/lib/jvm/java-7-openjdk-amd64/jre 

然而,当我在jenkins的工作中做同样的工作时,Maven使用1.6版本而不是1.7版本:

 javac -version javac 1.7.0_55 mvn install -debug Apache Maven 2.2.1 (rdebian-8) Java version: 1.6.0_31 Java home: /usr/lib/jvm/java-6-openjdk-amd64/jre 

我还修改了我用来指示新版本的mavenconfiguration文件,并在Jenkinspipe理面板中更改了JDK版本。 不过,Maven仍然使用1.6 jdk。

你知道我怎么能改变它?

我在这里找到了解决方案。 在Jenkins的全局配置中也需要定义JAVA_HOME变量。 正如Sudharsan解释,步骤是:

  1. 去管理詹金斯 – 配置系统

  2. 在“全局属性 – 环境变量”中添加JAVA_HOME及其路径

将Jenkins作业从JDK 1.6更改为JDK 1.8时遇到类似问题。 我从“Manage Jenkins / Configure System”中删除了JDK1.6条目,只剩下JDK1.8。 我期望的工作将开始使用JDK1.8,但他们没有。 我检查了这些工作,他们没有任何JDK任务。 重新启动詹金斯也没有帮助。

最后,我注意到通过重新保存作业,随后开始使用正确的JDK1.8。

(詹金斯版本1.602)