我正在尝试修改jenkins主节点中的PATH(我没有奴隶)。从"全局属性 - >环境变量"我添加了2个条目:" PATH"价值" $ PATH:/ opt / foo"和" FOO"有价值" BAR"。现在当我运行我的自由样式作业时,执行shell构建步骤是" echo $ PATH; 回声$ FOO"我看到PATH没有被修改,因此FOO正确显示。 这是为什么? 有没有办法从jenkins全局配置修改PATH? 我设法通过EnvInject插件修改作业级别的PATH,但我真正想要的是修改所有作业的PATH。
答案 0 :(得分:42)
你做得对。相同的Manage Jenkins =>全局属性=>环境变量对我有用。
请注意,如果安装了EnvInject插件,它似乎会掩盖Jenkins全局配置中的环境变量。所以卸载EnvInject并再试一次。
答案 1 :(得分:8)
Jenkins还支持格式PATH+<name>
来附加任何变量,不仅限于PATH:
管道步骤withEnv
中也支持此操作:
node {
withEnv(['PATH+JAVA=/path/to/java/bin']) {
...
}
}
请注意,它位于变量之前。如果必须附加它,则需要执行其他答案显示的内容。
请参阅管道步骤文档here。
您还可以使用语法PATH + WHATEVER = / something到$ PATH之前/ something
或者EnvVars here上的Java文档。
答案 2 :(得分:5)
我遇到了同样的问题,因为我的wsimport命令没有被Jenkins主人接收。这附带Java,所以我拒绝将JAVA_HOME / bin附加到jenkins master中的PATH变量。
答案 3 :(得分:2)
通过Jenkins追加PATH变量(管理Jenkins =&gt;全局属性=&gt;环境变量)时,请使用“Path”,而不是变量名称的“PATH”。
答案 4 :(得分:2)
在装有自制软件的Mac OS X上运行Jenkins 2.150.1。我无法通过更新PATH
环境变量来更改PATH
环境,如此处和similar questions上其他一些答案所述。最后,我更新了Jenkins安装程序的plist。我将以下内容添加到/usr/local/Cellar/jenkins-lts/2.150.1/homebrew.mxcl.jenkins-lts.plist
:
<key>EnvironmentVariables</key>
<dict>
<key>PATH</key>
<string>/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin</string>
</dict>
然后重新启动服务:
brew services restart jenkins-lts