Инструменты Jenkins JDK ведут себя по-разному в зависимости от типа установки.JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Инструменты Jenkins JDK ведут себя по-разному в зависимости от типа установки.

Сообщение Anonymous »

Проблема
В jenkins v2.479.2 возникла проблема с настройкой инструментов JDK.
Мы обнаружили, что поведение отличается по функциям как установлен jdk. Мы используем агенты для выполнения декларативных конвейеров.
  • Когда инструмент jdk установлен с плагином eclipse temurin, JAVA_HOME установлен правильно
  • Когда инструмент jdk установлен с опцией Extract*.zip/*.tar.gz из github, JAVA_HOME установлен неправильно
Что мы ожидать
Поведение инструментов jdk одинаково независимо от метода установки
Можете ли вы обнаружить какую-либо ошибку в наших примерах или есть обходной путь для использования установки jdk из метода извлечения?
Примеры

Код: Выделить всё

pipeline {

agent {
kubernetes {
label "myagent"
}
}

stages {
stage("JDK tool bahaviour"){

tools {
jdk "jdk21"
}
steps{
container("myagent") {
script {
println "JAVA_HOME is ${env.JAVA_HOME}"
sh 'java -version'
sh 'ls /home/jenkins/agent/tools/hudson.model.JDK/jdk21'
}
}
}
}
}
}
JDK установлен с помощью установщика Eclipse temurin (загрузите с сайта Adoptium).

Код: Выделить всё

[Pipeline] {
[Pipeline] stage
[Pipeline] { (JDK tool bahaviour)
[Pipeline] tool
Installing Eclipse Temurin from /var/jenkins_home/caches/adoptopenjdk/LINUX/amd64/jdk-21.0.5+11.zip to /home/jenkins/agent/tools/hudson.model.JDK/jdk21 on myagent-x3000
[Pipeline] envVarsForTool
[Pipeline] withEnv
[Pipeline] {
[Pipeline] container
[Pipeline] {
[Pipeline] script
[Pipeline] {
[Pipeline] echo
JAVA_HOME is /home/jenkins/agent/tools/hudson.model.JDK/jdk21
[Pipeline] sh
+ java -version
openjdk version "21.0.5" 2024-10-15 LTS
OpenJDK Runtime Environment Temurin-21.0.5+11 (build 21.0.5+11-LTS)
OpenJDK 64-Bit Server VM Temurin-21.0.5+11 (build 21.0.5+11-LTS, mixed mode, sharing)
[Pipeline] sh
+ ls /home/jenkins/agent/tools/hudson.model.JDK/jdk21
NOTICE
bin
conf
include
jmods
legal
lib
man
release
Как видите:
  • jdk установлен из кэша
  • извлеченный в /home/jenkins/agent/tools/hudson.model.JDK/jdk21
  • JAVA_HOME /home/jenkins/agent/tools/hudson.model.JDK/jdk21
  • Версия Java — 21.0.5 (устанавливается с помощью инструмента jdk)
  • В папке JAVA_HOME есть /bin
JDK, установленный с опцией Extract .zip .tar.gz

Код: Выделить всё

Unpacking https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.5%2B11/OpenJDK21U-jdk_x64_linux_hotspot_21.0.5_11.tar.gz to /home/jenkins/agent/tools/hudson.model.JDK/jdk21 on myagent-83v0g
[Pipeline] envVarsForTool
[Pipeline] withEnv
[Pipeline] {
[Pipeline] container
[Pipeline] {
[Pipeline] script
[Pipeline] {
[Pipeline] echo
JAVA_HOME is /home/jenkins/agent/tools/hudson.model.JDK/jdk21
[Pipeline] sh
+ java -version
openjdk version "11.0.20"  2023-07-18
OpenJDK Runtime Environment (build 11.0.20+8-post-Ubuntu-1ubuntu122.04)
OpenJDK 64-Bit Server VM (build 11.0.20+8-post-Ubuntu-1ubuntu122.04, mixed mode, sharing)
[Pipeline] sh
+ ls /home/jenkins/agent/tools/hudson.model.JDK/jdk21
jdk-21.0.5+11
Как видите:
  • jdk установлен из https://github.com/adoptium/temurin21-b ... _11.tar.gz
  • извлечено в /home/jenkins/agent/tools/hudson.model.JDK/jdk21
  • JAVA_HOME — это /home/jenkins/agent/tools/hudson.model.JDK/jdk21
  • Версия Java — 11.0.20 (версия Java агента Дженкинса (myagent)) нет 21
  • Папка JAVA_HOME нет /bin, поскольку есть папка jdk-21.0.5+11, поэтому JAVA_HOME установлен неправильно
Что мы пробовали
Даже если JAVA_HOME установлен на сцене с правильным путем /bin, JAVA_HOME все еще есть установлено предыдущее значение.

Код: Выделить всё

pipeline {

agent {
kubernetes {
label "myagent"
}
}

stages {
stage("JDK tool bahaviour"){

tools {
jdk "jdk21"
}
steps{
container("myagent") {
script {
println "JAVA_HOME is ${env.JAVA_HOME}"
sh 'java -version'
env.JAVA_HOME='/home/jenkins/agent/tools/hudson.model.JDK/jdk21/jdk-21.0.5+11'
println "JAVA_HOME is ${env.JAVA_HOME}"
sh 'java -version'
}
}
}
}
}
}

Код: Выделить всё

Unpacking https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.5%2B11/OpenJDK21U-jdk_x64_linux_hotspot_21.0.5_11.tar.gz to /home/jenkins/agent/tools/hudson.model.JDK/jdk21 on myagent-vfp6q
[Pipeline] envVarsForTool
[Pipeline] withEnv
[Pipeline] {
[Pipeline] container
[Pipeline] {
[Pipeline] script
[Pipeline] {
[Pipeline] echo
JAVA_HOME is /home/jenkins/agent/tools/hudson.model.JDK/jdk21
[Pipeline] sh
+ java -version
openjdk version "11.0.20" 2023-07-18
OpenJDK Runtime Environment (build 11.0.20+8-post-Ubuntu-1ubuntu122.04)
OpenJDK 64-Bit Server VM (build 11.0.20+8-post-Ubuntu-1ubuntu122.04, mixed mode, sharing)
[Pipeline] echo
JAVA_HOME is /home/jenkins/agent/tools/hudson.model.JDK/jdk21
[Pipeline] sh
+ java -version
openjdk version "11.0.20" 2023-07-18
OpenJDK Runtime Environment (build 11.0.20+8-post-Ubuntu-1ubuntu122.04)
OpenJDK 64-Bit Server VM (build 11.0.20+8-post-Ubuntu-1ubuntu122.04, mixed mode, sharing)
Как видите:
  • JAVA_HOME — это /home/jenkins/agent/tools/hudson.model.JDK /jdk21
  • Версия Java — 11.0.20 (от myagent)
  • даже установите env.JAVA_HOME = /home/jenkins/agent/tools/hudson.model.JDK/jdk21/jdk-21.0.5+11 по-прежнему остается /home/jenkins/agent/tools/hudson.model.JDK/jdk21
  • Версия Java по-прежнему 11.0.20 (от myagent)


Подробнее здесь: https://stackoverflow.com/questions/793 ... stallation
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»