CentOS 上 Jenkins 环境变量的设置方法与优先级
一 设置位置与优先级
二 在 CentOS 上配置操作系统级变量供 Jenkins 使用
sudo -iu jenkins
echo 'export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64' >> ~/.bash_profile
echo 'export MAVEN_HOME=/opt/apache-maven-3.8.6' >> ~/.bash_profile
echo 'export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin' >> ~/.bash_profile
source ~/.bash_profile
sudo -iu jenkins env | egrep '^(JAVA_HOME|MAVEN_HOME|PATH)='
java -version
mvn -v
三 在 Jenkins 界面中配置变量
四 Pipeline 中设置与打印变量
pipeline {
agent any
environment {
NODE_HOME = '/opt/nodejs'
PATH = "${env.NODE_HOME}/bin:${env.PATH}"
JAVA_HOME = '/usr/lib/jvm/java-11-openjdk-amd64'
MAVEN_HOME = '/opt/apache-maven-3.8.6'
}
stages {
stage('Check') {
steps {
sh 'node -v'
sh 'npm -v'
sh 'java -version'
sh 'mvn -v'
sh 'echo "JAVA_HOME=$JAVA_HOME, MAVEN_HOME=$MAVEN_HOME"'
}
}
}
}
node {
withEnv(["PATH=/opt/nodejs/bin:${env.PATH}"]) {
sh 'node -v && npm -v'
}
}
pipeline {
agent any
stages {
stage('Dump') {
steps {
script {
env.getEnvironment().each { k, v -> echo "${k} = ${v}" }
}
}
}
}
}
五 常见问题与排查
sudo systemctl edit jenkins
# 在打开的编辑器中添加:
[Service]
Environment="PATH=/opt/nodejs/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Environment="NODE_HOME=/opt/nodejs"
# 保存后执行:
sudo systemctl daemon-reload
sudo systemctl restart jenkins