Config tools
Add JDK
amazon-corretto-11.0.29.7.1-linux-x64
https://corretto.aws/downloads/resources/11.0.29.7.1/amazon-corretto-11.0.29.7.1-linux-x64.tar.gz
此处选择corretto,网络可达性比较好
Add NodeJS
v22.19.0
https://nodejs.org/dist/v22.19.0/node-v22.19.0-linux-x64.tar.gz
Jenkinsfile
思路
– tool包含一个名字,还包含tar.gz包的文件名,所以最终需要拿到bin的上一级目录,然后将拿到的这个bin路径附加到env.PATH的左侧
– 此处必须附加到左侧,右侧无法覆盖,因为linux PATH以发现左侧第一个为准
声明式 Pipeline
pipeline {
agent any
tools {
// 声明 Node.js 和 JDK 工具(仅用于自动设置 PATH)
nodejs 'v22.19.0'
jdk 'amazon-corretto-11.0.29.7.1-linux-x64'
}
environment {
// 注意:在 declarative pipeline 中,tools 会自动设置 PATH,
// 但如果你需要自定义路径结构(如包含子目录),需手动覆盖
// 根据你原始逻辑,重新构造 PATH
NODE_HOME = tool name: 'v22.19.0', type: 'nodejs'
JAVA_HOME = tool name: 'amazon-corretto-11.0.29.7.1-linux-x64', type: 'jdk'
PATH = "${NODE_HOME}/node-v22.19.0-linux-x64/bin:${JAVA_HOME}/amazon-corretto-11.0.29.7.1-linux-x64/bin:${env.PATH}"
}
stages {
stage('echo def') {
steps {
sh """
echo NODE_HOME: ${NODE_HOME}
echo JAVA_HOME: ${JAVA_HOME}
ls -l "${NODE_HOME}"
ls -l "${JAVA_HOME}/amazon-corretto-11.0.29.7.1-linux-x64/"
"""
}
}
stage('npm version') {
steps {
sh """
node --version
npm --version
"""
}
}
stage('java version') {
steps {
sh 'java --version'
}
}
}
}
脚本式 Pipeline
node{
def nodeHome = tool name: 'v22.19.0', type: 'nodejs'
def javaHome = tool name: 'amazon-corretto-11.0.29.7.1-linux-x64', type: 'jdk'
stage('echo def'){
sh """
echo ${nodeHome};
echo ${javaHome};
ls -l ${nodeHome};
ls -l ${javaHome}/amazon-corretto-11.0.29.7.1-linux-x64/;
"""
}
env.PATH = "${nodeHome}/node-v22.19.0-linux-x64/bin:${env.PATH}"
env.PATH = "${javaHome}/amazon-corretto-11.0.29.7.1-linux-x64/bin:${env.PATH}"
stage('npm version'){
sh """
node --version
npm --version;
"""
}
stage('java version'){
sh """
java --version
"""
}
}


