具有不同 jdk 的 Jenkins maven 发布插件
Jenkins maven release plugin with different jdk
我想在 jdk 1.7
上运行的 Jenkins 安装上执行编译 java 1.8 代码的 Maven 版本
我有一个使用 JDK Parameter Plugin 使用 java 1.8 编译的项目。它在进行常规构建时有效。
当我使用 maven 发布插件执行 maven 发布时,它使用 java 1.7 而不是插件上指定的版本派生了一个 JVM。我猜它需要环境中的 java 版本。
如果我将该作业的 JAVA_HOME 设置为 1.8,它就可以工作。
我正在尝试找到一个解决方案,使我不必在所有作业中覆盖 JAVA_HOME。
我尝试使用 similar post 中的解决方案,它通过强制编译器版本修复了 OP 问题:
<properties>
<jee.level>1.8</jee.level>
<jdk.level>1.8</jdk.level>
</properties>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${jee.level}</source>
<target>${jdk.level}</target>
</configuration>
</plugin>
但我最终得到:
[INFO] [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.3:compile (default-compile) on project redeem-commons-test: Fatal error compiling: invalid target release: 1.8 -> [Help 1]
如有任何帮助,我们将不胜感激。
到目前为止我找到的最好的解决方案是升级jenkins运行的容器的JDK并在后者中添加一个JAVA_OPTS以支持以前的JDK版本。例如-Djava.version=1.7
这样我就可以构建和 maven 发布 java 7 或 java 8 的项目。
我想在 jdk 1.7
上运行的 Jenkins 安装上执行编译 java 1.8 代码的 Maven 版本我有一个使用 JDK Parameter Plugin 使用 java 1.8 编译的项目。它在进行常规构建时有效。
当我使用 maven 发布插件执行 maven 发布时,它使用 java 1.7 而不是插件上指定的版本派生了一个 JVM。我猜它需要环境中的 java 版本。
如果我将该作业的 JAVA_HOME 设置为 1.8,它就可以工作。
我正在尝试找到一个解决方案,使我不必在所有作业中覆盖 JAVA_HOME。
我尝试使用 similar post 中的解决方案,它通过强制编译器版本修复了 OP 问题:
<properties>
<jee.level>1.8</jee.level>
<jdk.level>1.8</jdk.level>
</properties>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${jee.level}</source>
<target>${jdk.level}</target>
</configuration>
</plugin>
但我最终得到:
[INFO] [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.3:compile (default-compile) on project redeem-commons-test: Fatal error compiling: invalid target release: 1.8 -> [Help 1]
如有任何帮助,我们将不胜感激。
到目前为止我找到的最好的解决方案是升级jenkins运行的容器的JDK并在后者中添加一个JAVA_OPTS以支持以前的JDK版本。例如-Djava.version=1.7
这样我就可以构建和 maven 发布 java 7 或 java 8 的项目。