Maven在Jenkins执行时使用了不正确的Java版本

raf*_*ego 5 java linux maven jenkins

我有一些项目使用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>
Run Code Online (Sandbox Code Playgroud)

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

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
Run Code Online (Sandbox Code Playgroud)

但是,当我在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
Run Code Online (Sandbox Code Playgroud)

我还修改了用于指示新版本的maven配置文件,在Jenkins管理面板中我更改了JDK版本.但是,Maven仍在使用1.6 jdk.

你知道我怎么改变它?

raf*_*ego 4

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

  1. 转到管理 Jenkins - 配置系统

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