【发布时间】:2016-03-01 09:14:17
【问题描述】:
我们正在尝试将所有系统升级到 jdk1.8.0_66,包括 maven(在 jenkins 上运行)。
[jenkins@zldinfra1 jvm]$ mvn -version
Apache Maven 3.0.5 (r01de14724cdef164cd33c7c8c2fe155faf9602da; 2013-02-19 14:51:28+0100)
Maven home: /opt/apache-maven-3.0.5
Java version: 1.6.0_24, vendor: Sun Microsystems Inc.
Java home: /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "2.6.32-279.5.2.el6.centos.plus.x86_64", arch: "amd64", family: "unix"
[jenkins@zldinfra1 jvm]$ echo $JAVA_HOME
/opt/java
[jenkins@zldinfra1 jvm]$ file /opt/java
/opt/java: symbolic link to `jdk1.8.0_66'
所有快速谷歌导致我应该将我的JAVA_HOME 更改为所需的 Java 版本。如上所示,它设置为jdk1.8.0_66,但 Maven 使用的是完全不同的路径。
问题:
如何更改maven的JAVA_HOME?
编辑:
在@Rottens 回答之后,我设法让 maven 运行 jdk1.8.0_66,将 maven 的 JAVA_HOME 设置为 /opt/jdk1.8.0_66/jre。
但是,我在尝试部署时仍然收到以下错误(构建工作正常):
Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.3:compile (default-compile) on project deployTest: Fatal error compiling: invalid target release: 1.7
在 POM 中编译插件设置如下:
<plugin>
<inherited>true</inherited>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven.compiler.plugin.version}</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
在我的 Jenkins 项目配置中,我指定它使用 default JDK 和 Maven Version 3.2.1。
刚刚注意到:
Maven 版本 3.0.5(我配置为使用 1.8)没有出现在 Jenkins 中。 Jenkins 中出现的版本是3.2.1、3.1.1 和3.0.4。
【问题讨论】:
-
您是否检查了
/private/etc/mavenrc和~/.mavenrc是否覆盖了 JAVA_HOME 设置? -
mvn --v的输出是什么? -
Maven是否也使用同一个用户
jenkins?很有可能JAVA_HOME为您的 Maven 用户设置了不同的设置。 -
@Patrick
mvn --v输出与mvn -version相同的内容 -
@GergelyBacso 我现在就看看