在jenkins master中修改PATH变量

时间:2014-05-06 18:32:37

标签: jenkins

我正在尝试修改jenkins主节点中的PATH(我没有奴隶)。从"全局属性 - >环境变量"我添加了2个条目:" PATH"价值" $ PATH:/ opt / foo"和" FOO"有价值" BAR"。现在当我运行我的自由样式作业时,执行shell构建步骤是" echo $ PATH; 回声$ FOO"我看到PATH没有被修改,因此FOO正确显示。 这是为什么? 有没有办法从jenkins全局配置修改PATH? 我设法通过EnvInject插件修改作业级别的PATH,但我真正想要的是修改所有作业的PATH。

5 个答案:

答案 0 :(得分:42)

你做得对。相同的Manage Jenkins =>全局属性=>环境变量对我有用。

请注意,如果安装了EnvInject插件,它似乎会掩盖Jenkins全局配置中的环境变量。所以卸载EnvInject并再试一次。

答案 1 :(得分:8)

Jenkins还支持格式PATH+<name>来附加任何变量,不仅限于PATH:

Jenkins variable + notation

管道步骤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变量。

环境名称应为Path而不是PATH。请参阅附图,我已经将JAVA_HOME / bin记录到PATH变量中 enter image description here

答案 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