2017-12-19 2 views
0

Jenkins 선언적 파이프 라인의 여러 단계에 대해 서로 다른 JDK 버전을 사용하고 싶습니다. 첫 번째 단계에서는 Java 8을 사용하고 있습니다. 두 번째 단계에서는 Java 6을 사용하고 있습니다. Jenkins의 선언적 파이프 라인에서 여러 JDK 버전을 선택하는 방법은 무엇입니까? Pipeline tools directive에서선언적 파이프 라인에서 여러 JDK 버전을 선택하는 방법 Jenkins

pipeline { 
    agent any 

    tools { 
    jdk 'jdk_1.8.0_151' 
    jdk 'jdk_1.6.0_45' 
    } 

    stages { 
    stage('java 8') { 
     steps { 
     sh 'java -version' 
     sh 'javac -version' 
     } 
    } 
    stage('java 6') { 
     steps { 
     sh 'java -version' 
     sh 'javac -version' 
     } 
    } 
    } 
} 

답변

2

당신은 각 단계에 대한 도구 섹션을 추가 할 수 있습니다.

pipeline { 
     agent any 

     stages { 
      stage ("first") { 
       tools { 
        jdk "jdk-1.8.101" 
       } 
       steps { 
        sh 'java -version' 
       } 
      } 
      stage("second"){ 
       tools { 
        jdk "jdk-1.8.152" 
       } 
       steps{ 
        sh 'java -version' 
       } 
      } 
     } 
} 
0

다음 pipeline-examplescloudbess example에서

tools: A section defining tools to auto-install and put on the PATH. 

The tool name must be pre-configured in Jenkins under 
Manage Jenkins → Global Tool Configuration. 

:

난 당신이 다른 JDK를하려는 경우 각 단계에 대해 서로 다른 고정 표시기 이미지를 사용하는 것이 좋습니다
pipeline { 
    agent any 

    tools { 
    jdk 'jdk_1.8.0_151' 
    } 

    stages { 
    stage('jdk 8') { 
     steps { 
     sh 'java -version' 
     sh 'javac -version' 
     } 
    } 
    stage('jdk 6') { 
     steps { 
     withEnv(["JAVA_HOME=${tool 'openjdk_1.6.0_45'}", "PATH=${tool 'openjdk_1.6.0_45'}/bin:${env.PATH}"]) { 
      sh 'java -version' 
      sh 'javac -version' 
     } 
     } 
    } 
    stage('global jdk') { 
     steps { 
     sh 'java -version' 
     sh 'javac -version' 
     } 
    } 
    } 
} 
관련 문제