java - Jenkins 执行 Maven 时使用了错误的 Java 版本

标签 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>

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

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。

你知道我怎样才能改变它吗?

最佳答案

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

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

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

关于java - Jenkins 执行 Maven 时使用了错误的 Java 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23653477/

相关文章:

java - 线程中的异常 "main"java.lang.NoSuchMethodError : org. slf4j.impl.StaticLoggerBinder.getSingleton()Lorg/slf4j/impl/StaticLoggerBinder

java - 飞利浦 Hue - "method, PUT, not available for resource,/scenes"(Java SDK)

Java包运行时错误

java - 如何根据日期/时间过滤 ArrayList 并将其显示在 Android Studio 的回收 View 中?

java - 如何在 Spring boot 中禁用 Jolokia 的写入操作?

Linux Expect SFTP + 放置文件

linux - 如何读取文件并将其重定向到变量?

linux - 终端 Linux - 引用可执行文件 - 没有这样的文件或目录

Maven 2 根据配置文件替换类实现?

java - 使用 Maven 进行树外构建。是否可以?