设置MavensJava版本

设置MavensJava版本,java,linux,maven,Java,Linux,Maven,我们正在尝试将所有系统升级到jdk1.8.0_66,包括maven(在jenkins上运行) 谷歌带来的所有快速结果是,我应该将我的JAVA\u主页更改为所需的JAVA版本。正如您在上面看到的,它被设置为jdk1.8.0_66,但Maven使用的是完全不同的路径 问题: 如何更改maven的JAVA\u主页 编辑: 在@Rottens回答之后,我设法让maven运行jdk1.8.0_66,maven的JAVA_HOME设置为/opt/jdk1.8.0_66/jre 但是,在尝试部署时,我仍然会遇

我们正在尝试将所有系统升级到
jdk1.8.0_66
,包括maven(在jenkins上运行)

谷歌带来的所有快速结果是,我应该将我的
JAVA\u主页
更改为所需的JAVA版本。正如您在上面看到的,它被设置为
jdk1.8.0_66
,但Maven使用的是完全不同的路径

问题: 如何更改maven的
JAVA\u主页

编辑:

在@Rottens回答之后,我设法让maven运行
jdk1.8.0_66
,maven的
JAVA_HOME
设置为
/opt/jdk1.8.0_66/jre

但是,在尝试部署时,我仍然会遇到以下错误(构建工作正常):

未能在project deployTest上执行目标org.apache.maven.plugins:maven编译器插件:3.3:compile(默认编译):致命错误编译:无效目标版本: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>

真的
org.apache.maven.plugins
maven编译器插件
${maven.compiler.plugin.version}
1.7
1.7
在我的Jenkins项目配置中,我指定它使用
default
JDK和
Maven版本3.2.1

刚刚注意到:


Maven版本3.0.5(我配置为使用1.8)没有出现在Jenkins中。Jenkins中出现的版本是
3.2.1
3.1.1
3.0.4
,请务必检查$PATH环境变量,我总是在.profile中设置我的JAVA_HOME,然后在PATH变量的开头使用它,所以我总是确定我使用的是我选择的jdk版本。像这样的事情:

JAVA_HOME=/opt/java/jdk/jdk1.8_65
export JAVA_HOME

PATH=$JAVA_HOME/bin:$PATH
export PATH

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

JAVA_HOME=/opt/java/jdk/jdk1.8_65
export JAVA_HOME

PATH=$JAVA_HOME/bin:$PATH
export PATH

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

在您的项目中,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>

true**//默认设置为true**
org.apache.maven.plugins
maven编译器插件
3.0.5
1.7
1.7

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

在您的项目中,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>

true**//默认设置为true**
org.apache.maven.plugins
maven编译器插件
3.0.5
1.7
1.7

通过从Jenkins卸载
jdk1.7.0
解决了我的问题,只留下
jdk1.8.0

将每个项目显式配置为使用
jdk1.8.0
也可以,但这是出于维护原因,而不是我们想要做的

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

此外,我将Maven本身升级到
3.3.9
,并将所有使用过的Maven插件升级到各自的最新版本。这并不影响Maven构建。但它确实破坏了我们的蚂蚁构造


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

我的问题通过从Jenkins卸载
jdk1.7.0
得到解决,只留下
jdk1.8.0

将每个项目显式配置为使用
jdk1.8.0
也可以,但这是出于维护原因,而不是我们想要做的

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

此外,我将Maven本身升级到
3.3.9
,并将所有使用过的Maven插件升级到各自的最新版本。这并不影响Maven构建。但它确实破坏了我们的蚂蚁构造



我还将Jenkins升级为在Java
1.8
上运行,而不是
1.7
,这没有任何效果(除了使编译时间稍微缩短).

您是否检查了
/private/etc/mavenrc
~/.mavenrc
以覆盖JAVA\u主页设置?mvn--v的输出是什么?Maven是否也使用相同的用户
jenkins
?很有可能
JAVA\u HOME
为您的Maven用户设置了不同的设置。@Patrick
mvn--v
输出与
mvn-version
@GergelyBacso我现在就来看看,您是否检查了
/private/etc/mavenrc
~/.mavenrc
以覆盖JAVA\u HOME设置?mvn的输出是什么--v?Maven是否也使用相同的用户
jenkins
?很有可能
JAVA\u HOME
为您的Maven用户设置了不同的设置。@Patrick
mvn--v
输出与
mvn-version
@GergelyBacso相同的东西,我现在就来看看这似乎有些效果。仍然没有编译,但java版本现在是正确的。@Martin您的运行时也设置为java 8吗?@Patrick根据
java-version
它设置为
1.8.0\u 66-b17
@Martin我不知道运行时与编译有什么关系。javac-version报告了什么?@Gimby
javac1.8.0\u66
。构建现在可以工作了,但是尝试
执行Maven Release
仍然会给我带来“目标版本无效:1.7”的错误这似乎有些奏效。仍然没有编译,但java版本现在是正确的。@Martin您的运行时也设置为java 8吗?@Patrick根据
java-version
它设置为
1.8.0\u 66-b17
@Martin我不知道运行时与编译有什么关系。javac-version报告了什么?@Gimby
javac1.8.0\u66
。构建现在可以工作了,但是尝试
执行Maven发布
仍然会给我带来“无效目标发布:1.7”错误