Конвейер Дженкинса использует версию java, отличную от указанной в сценарии

#java #jenkins #jenkins-pipeline

#Ява #дженкинс #дженкинс-трубопровод

Вопрос:

Мое приложение spring boot использует java 11, но на моем сервере jenkins установлена java 8. Поэтому я добавил новый JDK в глобальную конфигурацию инструмента. Я указал этот URL-адрес загрузки для извлечения в конфигурации JDK. Я также указал метку (имя узла) и подкаталог. Моя конфигурация выглядит так. введите описание изображения здесь

Я указал имя JDK в своем сценарии конвейера, как показано ниже, но когда я делаю java -version это из сценария конвейера, я все равно получаю результат как jdk 8. JAVA_HOME Путь отображается правильно. Может ли кто-нибудь подсказать мне, в чем может быть проблема?

Спасибо

 pipeline {  agent any  tools {  jdk 'AdoptOpenJDK11'  maven 'Maven_3_8_1'  }  stages {  stage('Build') {  steps {  sh 'echo $JAVA_HOME

Журналы Дженкинса, как показано ниже

   echo /var/jenkins_home/tools/hudson.model.JDK/AdoptOpenJDK11/jdk11_13$ /var/jenkins_home/tools/hudson.model.JDK/AdoptOpenJDK11/jdk11_13$ [Pipeline] sh   java -version openjdk version "1.8.0_292" OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_292-b10) OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.292-b10, mixed mode) [Pipeline] sh   mvn -B -DskipTests clean package The JAVA_HOME environment variable is not defined correctly This environment variable is needed to run this program NB: JAVA_HOME should point to a JDK not a JRE  

Ответ №1:

Я решил проблему, указав образ докера для этапа "Сборка"

 stage('Build') {  agent {  docker {  image 'maven:3.8.1-adoptopenjdk-11'  args '-u root -v /root/.m2:/root/.m2 -v "$pwd":/usr/src/app -w /usr/src/app'  }  }  steps {  sh 'mvn -B -DskipTests clean package'  }  }  

sh 'java -version' sh 'mvn -B -DskipTests clean package' } } } } Журналы Дженкинса, как показано ниже


Ответ №1:

Я решил проблему, указав образ докера для этапа «Сборка»