Jenkins宣言型パイプラインの異なるステージに異なるJDKバージョンを使用したい。最初の段階ではJava 8.を使用しています。2番目の段階ではJava 6.を使用しています。6. Jenkinsの宣言型パイプラインで複数のJDKバージョンを選択するにはどうすればよいですか?
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'
}
}
}
}
各ステージにツールセクションを追加できます。
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'
}
}
}
}
異なるJDKバージョンが必要な場合は、ステージごとに異なるDockerイメージを使用することをお勧めします。正しいタグでdocker hub openjdkイメージを使用して実現できます。 https://hub.docker.com/r/library/openjdk/
https://hub.docker.com/r/library/openjdk/tags/ そのようなもの:
pipeline {
agent none
stages {
stage('openjdk:7-jdk') {
agent {
docker { image 'jdk7_image' }
}
steps {
sh 'Java -version'
}
}
stage('Java8') {
agent {
docker { image 'openjdk:8-jdk' }
}
steps {
sh 'Java -version'
}
}
}
}
パイプラインツールディレクティブ から:
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.
pipeline-examples および cloudbess example から:
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'
}
}
}
}