用两个JDK构建相同的工作

时间:2018-10-24 12:10:36

标签: java jenkins

我尝试在jenkins(多分支管道)上建立工作。我需要使用JDK8和JDK 6来运行此作业以进行测试。

如何安装其他JDK,如何定义他必须使用的JDK?

谢谢

2 个答案:

答案 0 :(得分:1)

设置JAVA_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 directive一起使用:

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 Release History)。

答案 1 :(得分:0)

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

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

pom.xml

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

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

Jenkinsfile

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