#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:
Я решил проблему, указав образ докера для этапа «Сборка»