在Windows上的文件中设置全局环境变量
我有一个运行在Windows系统上的Jenkins CI服务器,现在我想为我的管道设置全局环境变量 我尝试了两种不同的方法都没有成功:在Windows上的文件中设置全局环境变量,windows,jenkins,jenkins-pipeline,Windows,Jenkins,Jenkins Pipeline,我有一个运行在Windows系统上的Jenkins CI服务器,现在我想为我的管道设置全局环境变量 我尝试了两种不同的方法都没有成功: node { environment { MY_PYTHON='D:\ProgramData\Anaconda3' PATH='%MY_PYTHON%;%MY_PYTHON%\Scripts;%PATH%' } stage ('Checkout and Build') { bat 'echo
node {
environment {
MY_PYTHON='D:\ProgramData\Anaconda3'
PATH='%MY_PYTHON%;%MY_PYTHON%\Scripts;%PATH%'
}
stage ('Checkout and Build') {
bat 'echo %MY_PYTHON%'
bat 'echo %PATH%'
bat 'python --version'
}
}
启动生成后,将抛出以下错误:
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
WorkflowScript: 3: unexpected char: '\' @ line 3, column 22.
MY_PYTHON='D:\ProgramData\Anaconda3'
^
有点直截了当,所以我试着像这样加倍反斜杠:
environment {
MY_PYTHON='D:\\ProgramData\\Anaconda3'
PATH='%MY_PYTHON%;%MY_PYTHON%\\Scripts;%PATH%'
}
node {
environment {
MY_PYTHON='D:\ProgramData\Anaconda3'
}
stage ('Checkout and Build') {
bat '''
set PATH = "%MY_PYTHON%;%MY_PYTHON%\Scripts;%PATH%"
echo %MY_PYTHON%
echo %PATH%
python --version
'''
}
}
因此,在重新启动构建之后,我只得到了命令python的错误--version
aspython
仍然无法在路径上找到,而且我没有得到MY_python
的任何结果,对于path
我得到了所有预先定义的路径,除了我想要添加的路径
我被卡住了,所以任何帮助都将不胜感激
environment {
MY_PYTHON='D:\ProgramData\Anaconda3'
PATH='%MY_PYTHON%;%MY_PYTHON%\Scripts;%PATH%' <----
}
(我不是python开发人员,因此我不确定该路径是否正确)
我还注意到,您可以使用如下变量:
(我不是python开发人员,因此我不确定该路径是否正确) 我还注意到,您可以使用如下变量:bat'echo变量:%VARIABLE\u NAME%'
尝试:MY\u PYTHON='D:\\ProgramData\\Anaconda3'尝试:MY\u PYTHON='D:\\ProgramData\\Anaconda3'要展开变量,必须使用双引号:bat'echo var:%VARIABLE\u NAME%'
不管怎样,在windows中设置路径似乎特别有问题,因为“PATH”也是一个命令 你要做的是这样的:PATH="${MY_PYTHON};${MY_PYTHON}\Scripts;${PATH}"
environment { MY_PYTHON='D:\\ProgramData\\Anaconda3' PATH='%MY_PYTHON%;%MY_PYTHON%\\Scripts;%PATH%' }
node { environment { MY_PYTHON='D:\ProgramData\Anaconda3' } stage ('Checkout and Build') { bat ''' set PATH = "%MY_PYTHON%;%MY_PYTHON%\Scripts;%PATH%" echo %MY_PYTHON% echo %PATH% python --version ''' } }
要展开变量,必须使用双引号:
不管怎样,在windows中设置路径似乎特别有问题,因为“PATH”也是一个命令 你要做的是这样的:PATH="${MY_PYTHON};${MY_PYTHON}\Scripts;${PATH}"
environment { MY_PYTHON='D:\\ProgramData\\Anaconda3' PATH='%MY_PYTHON%;%MY_PYTHON%\\Scripts;%PATH%' }
对的这里,node { environment { MY_PYTHON='D:\ProgramData\Anaconda3' } stage ('Checkout and Build') { bat ''' set PATH = "%MY_PYTHON%;%MY_PYTHON%\Scripts;%PATH%" echo %MY_PYTHON% echo %PATH% python --version ''' } }
被解释为Groovy GString,因此由Groovy而不是操作系统进行插值。不过,在Windows上,bat“echo var:$VARIABLE_NAME”
应该使用单引号或双引号。正确!这里,%VARIABLE\u NAME%
被解释为Groovy GString,因此由Groovy而不是操作系统进行插值。不过,在Windows上,bat“echo var:$VARIABLE_NAME”
应使用单引号或双引号。%VARIABLE\u NAME%