设置Mavens Java版本

时间:2015-11-27 08:05:15

标签: java linux maven

我们正尝试将所有系统升级到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 Project配置中,我指定它使用default JDK和Maven Version 3.2.1

刚刚注意到:

Maven版本3.0.5(我配置为使用1.8)没有出现在Jenkins中。 Jenkins中显示的版本为3.2.13.1.13.0.4

3 个答案:

答案 0 :(得分:0)

一定要检查你的$ PATH环境变量,我总是在我的.profile中设置我的JAVA_HOME,然后在我的PATH变量的开头使用它,所以我总是确定我正在使用我选择的jdk版本。有点像这样:

public class Employee : IEmployee
{
   ObservableCollection<Job> Jobs{get;set;}
   //this is giving error
}

答案 1 :(得分:0)

将系统的maven版本从Apache Maven 3.0.5更新为Apache Maven 3.3.x

OR

在您的项目中,pom进行更改以适应系统:

<plugin>
    <inherited>true</inherited> **//default set to true**
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.0.5</version>
    <configuration>
        <source>1.7</source>
        <target>1.7</target>
    </configuration>
</plugin>

答案 2 :(得分:0)

我的问题通过从Jenkins卸载date_default_timezone_set();来解决,只留下jdk1.7.0

明确配置每个项目以使用jdk1.8.0也有效,但这是出于维护原因而不是我们想要做的事情。

我不知道为什么让Jenkins自动选择jdk1.8.0进行编译不起作用,但这似乎是个问题。

此外,我将Maven本身升级为jdk1.8.0,并将所有使用过的maven插件升级到各自的最新版本。这不会影响Maven构建。然而它确实破坏了我们的蚂蚁构建。

我还升级了Jenkins以在3.3.9而不是1.8上运行,这没有任何效果(除了使编译时间略微缩短)。