如何在Windows的Jenkins配置中设置PATH环境变量?

27 人关注

当我在Windows Server 2008上运行我的构建过程时,它失败了,错误信息如下

不能运行程序 "foo"。CreateProcess: error=2, 系统无法找到指定的文件

我在Ubuntu服务器上也遇到过类似的问题,解决方法是在Jenkins配置中的PATH变量中加入Composer全局安装的二进制文件文件夹的路径( Manage Jenkins -> Configure System -> Global properties -> Environment variables: name=PATH, value=$PATH:$COMPOSER_HOME/vendor/bin/ )。

(由于权限问题,需要将 COMPOSER_HOME 移到 /root 目录之外,还需要另一个目录,供Jenkins访问)。

现在我在Windows上也尝试了同样的方法,但没有效果。所以,也许我只是把 PATH 设置错了。我已经试过了。

$PATH:D:\path\to\COMPOSER_HOME\vendor\bin $PATH;D:\path\to\COMPOSER_HOME\vendor\bin %PATH%D:\path\to\COMPOSER_HOME\vendor\bin %PATH%;D:\path\to\COMPOSER_HOME\vendor\bin

如何在Jenkins配置中设置 PATH 环境变量,在Windows上正确工作?

5 个评论
Rao
你试过的最后一个应该可以工作。然而,令人困惑的是,你为什么要在这里添加jenkins bin?相反,你应该在启动jenkins本身的命令行中添加它。还要检查现有的路径变量中是否有 spaces 。检查 this 请。
谢谢你的评论!对于你关于 "Jenkins bin "的问题。默认情况下,Jenkins根目录下没有 bin 文件夹。这个 bin 只是我创建的一个自定义文件夹,用于在那里存储 global ly 安装的Composer软件包。
刚刚又用 %PATH%;D:\path\to\Jenkins\bin 试了一下。它不起作用。而且路径中没有空格。
Rao
也许你想在命令行上设置它,然后重启Jenkins看看?
刚刚检查了这个。在 Path 中添加了 D:\path\to\Jenkins\bin; ,注销了,并重新启动了Jenkins。这并没有帮助。
windows
jenkins
configuration
path
environment-variables
automatix
automatix
发布于 2016-04-07
11 个回答
Roderick
Roderick
发布于 2022-12-15
已采纳
0 人赞同

它需要的是 "Path",而不是 "PATH"。

Jenkins以区分大小写的方式处理这个特殊变量,只有 "Path "被识别为路径变量。"PATH "在Jenkins看来就像一个普通的环境变量,即使在Windows上也是如此。

automatix
automatix
发布于 2022-12-15
0 人赞同

我遇到的问题不是由错误的 Path 配置引起的。 %PATH%;D:\path\to\COMPOSER_HOME\vendor\bin 是正确的。

它不应该是价值框中的$Path吗?总之,$Path对我有用。
是的,它应该是值框中的$Path。否则,旧的路径将被清除掉
pocketrocket
pocketrocket
发布于 2022-12-15
0 人赞同

不要对Value字段中的%PATH%和$PATH感到困惑。虽然%PATH%是windows节点的正确语法,但你应该使用/foo/bar:$PATH来扩展unix节点的PATH。

joshm
joshm
发布于 2022-12-15
0 人赞同

我有一个类似的要求,要定制 路径 在一个Windows slave上使用Windows Jenkins master的变量。我不想创建一个Jenkins全局环境变量,并希望这个变量是特定于一个特定的Windows节点/代理。

以下是我的做法。

1) 创建一个环境变量,如下图所示 Nodes -> WindowsNode -> Configure screen:

2) Disconnected my Jenkins node.

3) 直接在slave上重新启动我的Jenkins系统进程。

4) Tested it out by clicking on Nodes -> WindowsNode -> System Information 并看到分配给该节点的新环境变量。

5) 然后在Jenkins作业中使用它,该作业将在Windows slave/agent上运行,方法是将以下命令添加到一个 执行Windows批处理命令 build step:

git --version

hakuna
hakuna
发布于 2022-12-15
0 人赞同

如果你想为各自的工作在本地设置,请在 Build -> Execute batch Command 步骤中尝试这样做。

//append more variables separated by ; if required
SET Path=%PATH%;C:\Program Files\Git\bin;
//run your command here
git --version

这种方法适用于你想执行的任何类型的命令。只要把各自的环境变量添加到本地的Path变量中,如上图所示。

Priyanka Rawat
Priyanka Rawat
发布于 2022-12-15
0 人赞同
  • 用于为从属节点添加路径,像home环境变量一样。

  • 它可以在从属尼德配置中完成目录。

  • 打开任何一个从属节点的配置设置,添加env vaiable信息。

  • 例如,对于设置HOME,只需添加主目录的名称和位置。

  • Andreas
    Andreas
    发布于 2022-12-15
    0 人赞同

    在其他答案中无法得到其他的工作。最终在我的从属节点启动器(批处理)脚本中设置了这个变量。

    SET PATH=C:\cygwin64\bin;%PATH%
    java -jar agent.jar -jnlpUrl ...
        
    eel ghEEz
    eel ghEEz
    发布于 2022-12-15
    0 人赞同

    如果在Jenkins中设置全局会伤害到特定操作系统的代理,或者需要适应相同操作系统代理之间的差异,在代理的系统变量中设置Path会有帮助。

    reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path /t REG_EXPAND_SZ /d "C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0;..." /f
    net stop jenkins_agent
    net start jenkins_agent
        
    Anupam Mahapatra
    Anupam Mahapatra
    发布于 2022-12-15
    0 人赞同

    THIS SOLVES IT :

    Go To

    Jenkins -> Configure System -> Global properties -> Environment variables: name=Path, value=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin/

    不,它不会。如果你有linux节点和mac节点,可执行文件在它们的不同路径上。
    Andrew
    Andrew
    发布于 2022-12-15
    0 人赞同

    只是想补充一下,因为我们也有类似的问题,并在这里寻找答案。

    在我们的案例中,环境变量设置为Globally不起作用,但在节点配置中以完全相同的方式定义它却起了作用。我们的问题出在Pipeline项目上。Maven项目以任何方式都能正常工作。见定义的屏幕截图。