【问题标题】:Maven uses an incorrect Java version when it is executed by JenkinsMaven 在 Jenkins 执行时使用了不正确的 Java 版本
【发布时间】:2014-05-14 11:31:14
【问题描述】:

我有一些使用 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

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

你知道我该如何改变它吗?

【问题讨论】:

  • 您可以为每个 Jenkins 作业覆盖全局 JDK - 也​​许这是您的问题?
  • 我刚刚找到了解决方案here。我所要做的就是在 Jenkins 的全局配置中定义 JAVA_HOME。谢谢安德斯!
  • 也许您可以将其发布为您自己的答案,有些人有时不关心阅读此 cmets。
  • 步骤如下: 1) 进入管理 Jenkins -> 配置系统 2) 在全局属性 -> 环境变量中添加 JAVA_HOME 及其路径

标签: java linux maven jenkins


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    将 Jenkins 作业从 JDK 1.6 更改为 JDK 1.8 时遇到了类似的问题。我从“Manage Jenkins/Configure System”中删除了JDK1.6条目,只留下JDK1.8。我预计工作会开始使用 JDK1.8,但他们没有。我检查了作业,他们没有任何 JDK 分配。重启 Jenkins 也无济于事。

    最后,我注意到只需重新保存一个作业,它随后就开始使用正确的 JDK1.8。

    (詹金斯 1.602 版)

    【讨论】:

    • 感谢您的回答。正如我在评论中提到的那样,该问题已解决,并且我还发布了带有完整解释的答案,但该答案已被管理员删除。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-22
    • 2011-10-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多