使用两个 JDK 构建相同的作业



我尝试在 jenkins(多分支管道(上构建一个作业。我需要使用 JDK8 和 JDK 6 运行此作业进行测试。

如何安装不同的 JDK 以及如何定义他必须使用的 JDK?

谢谢

SetJAVA_HOME

假设您在 Jenkins 中安装了两个 JDK,您可以创建两个不同的阶段并为每个阶段设置JAVA_HOME环境变量。像这样:

pipeline {
stage("jdk6") {
environment {
JAVA_HOME = "/usr/lib/jvm/oracle-java6-jdk-amd64"
}
steps {
sh "java -version"
sh "mvn --version"
}
}
stage("jdk8") {
environment {
JAVA_HOME = "/usr/lib/jvm/oracle-java8-jdk-amd64"
}
steps {
sh "java -version"
sh "mvn --version"
}
}
}

使用 Jenkins 的全局工具

或者,您可以在"管理 Jenkins"→"全局工具配置"下配置所需的 JDK。请注意,并将其与tools指令一起使用:

pipeline {
agent any
stages {
stage("jdk6") {
tools {
jdk "jdk6"
maven "3.2.5" // latest Maven, which supports JDK 6
}
steps {
sh "java -version"
sh "mvn --version"
}
}
stage("jdk8") {
tools {
jdk "jdk8"
maven "3.5.4"
}
steps {
sh "java -version"
sh "mvn --version"
}
}
}
}

请注意,我还需要更改 Maven 版本,因为当前的 Maven 版本不再支持 JDK 6(请参阅 Maven 发布历史(。

最后,我找到了解决此问题的方法

在文件 pom 中.xml我定义了一个这样的插件:

绒球.xml

像这样,我可以在我的 Jenkinsfile 中定义我使用的 jdk 版本。

在我的 Jenkinsfile 中,我定义了这样的阶段:

詹金斯文件

有了这个,我对兼容性没有问题

最新更新