我已经设置了一个基本的 jenkins 代理作为与 jenkins 控制器连接的 docker 容器。我想在代理上设置 Java 不同的 java 版本 (
jdk-21.0.2
),默认情况下有 Temurin-17.0.8.1
。
我设置了一个不同的 java,但是当使用像这样的简单作业脚本检查 Java 时
pipeline {
agent { label 'docker-agent1' }
tools {
jdk 'jdk-21.0.2'
}
stages {
stage('Java test') {
steps {
sh '''
env | grep -e PATH -e JAVA_HOME
which java
java -version
'''
}
}
}
}
它给了我以下输出。注意 java -version
命令的输出。它为我提供了代理上默认设置的 java 版本。
Started by user admin
[Pipeline] Start of Pipeline
[Pipeline] node
Running on docker-agent1 in /home/jenkins/workspace/java-test-agent1
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Declarative: Tool Install)
[Pipeline] tool
Unpacking https://download.java.net/java/GA/jdk21.0.2/f2283984656d49d69e91c558476027ac/13/GPL/openjdk-21.0.2_linux-x64_bin.tar.gz to /home/jenkins/tools/hudson.model.JDK/jdk-21.0.2 on docker-agent1
[Pipeline] envVarsForTool
[Pipeline] }
[Pipeline] // stage
[Pipeline] withEnv
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Java test)
[Pipeline] tool
[Pipeline] envVarsForTool
[Pipeline] withEnv
[Pipeline] {
[Pipeline] sh
+ env
+ grep -e PATH -e JAVA_HOME
LD_LIBRARY_PATH=/opt/java/openjdk/lib/server:/opt/java/openjdk/lib:/opt/java/openjdk/../lib
PATH=/home/jenkins/tools/hudson.model.JDK/jdk-21.0.2/jdk-21.0.2/bin:/home/jenkins/tools/hudson.model.JDK/jdk-21.0.2/jdk-21.0.2/bin:/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
JAVA_HOME=/home/jenkins/tools/hudson.model.JDK/jdk-21.0.2/jdk-21.0.2
+ which java
/home/jenkins/tools/hudson.model.JDK/jdk-21.0.2/jdk-21.0.2/bin/java
+ java -version
openjdk version "17.0.8.1" 2023-08-24
OpenJDK Runtime Environment Temurin-17.0.8.1+1 (build 17.0.8.1+1)
OpenJDK 64-Bit Server VM Temurin-17.0.8.1+1 (build 17.0.8.1+1, mixed mode)
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS
知道为什么找不到 Java 版本吗jdk-21.0.2
jdk-21.0.2
Manage Jenkins -> Tools
的方法
检查路径变量并更新它或
使用绝对路径,您可以在 Jenkins 管道脚本中指定 java 可执行文件的绝对路径,而不是依赖 PATH 环境变量。例如:
时髦
steps {
sh '''
/home/jenkins/tools/hudson.model.JDK/jdk-21.0.2/jdk-21.0.2/bin/java -version
'''
}