如何在 Windows 上的 Jenkins 配置中设置 PATH 环境变量?
How to set the PATH environment variable in Jenkins configuration on Windows?
当我在 Windows Server 2008 上 运行 我的构建过程时,它失败并显示类似
的错误消息
Cannot run program "foo": CreateProcess: error=2, The system cannot find the file specified
我已经在 Ubuntu 服务器上遇到了类似的问题,并通过将 Composer 全局安装的二进制文件的文件夹路径添加到 Jenkins 配置中的 PATH 变量来解决它(Manage Jenkins -> Configure System -> Global properties -> Environment variables: name=PATH, value=$PATH:$COMPOSER_HOME/vendor/bin/
):
(由于将 COMPOSER_HOME
移出 /root
目录的权限也需要移动到另一个 Jenkins 可访问的目录。)
现在我在 Windows 上尝试了同样的方法,但它不起作用。所以,也许我只是将 PATH
设置错了。我尝试过的:
PATH
$PATH:D:\path\to\COMPOSER_HOME\vendor\bin
PATH
$PATH;D:\path\to\COMPOSER_HOME\vendor\bin
PATH
%PATH%D:\path\to\COMPOSER_HOME\vendor\bin
PATH
%PATH%;D:\path\to\COMPOSER_HOME\vendor\bin
如何在 Jenkins 配置中正确设置 PATH
环境变量 Windows?
我遇到的问题不是由错误的 Path
配置引起的。 %PATH%;D:\path\to\COMPOSER_HOME\vendor\bin
正确。
需要"Path",而不是"PATH"。
Jenkins 以区分大小写的方式处理这个特殊变量,只有 "Path" 被识别为路径变量。 "PATH" 在 jenkins 看来就像一个通用环境变量,即使在 Windows.
上也是如此
我有一个类似的要求,要在 Windows slave 和 Windows Jenkins master 上自定义 Path 变量。我不想创建 Jenkins 全局环境变量,并希望此变量特定于特定 windows node/agent.
这是我所做的:
1) 创建了一个环境变量,如下所示 Nodes -> WindowsNode -> Configure 屏幕:
2) 断开了我的 Jenkins 节点。
3) 直接在slave上重启了我的Jenkins系统进程。
4) 通过单击 Nodes -> WindowsNode -> System Information 对其进行了测试,并看到了新的分配给节点的环境变量:
5) 然后在 Jenkins 作业中使用它,通过将以下命令添加到 Execute Windows Windows slave/agent 上 运行批处理命令 构建步骤:
git --版本
用于为从节点添加路径,如 home env 变量。
它可以是从节点配置中完成的目录。
打开任何从节点的配置设置,添加env vaiable信息。
例如设置 HOME 只需添加主目录的名称和位置。
如果您想在本地为相应的作业设置它,请在 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变量中添加各自的环境变量即可。
不要混淆值字段中的 %PATH% 与 $PATH。虽然 %PATH% 是 windows 节点的正确语法,但您应该使用 /foo/bar:$PATH 在 unix 节点
上扩展 PATH
无法通过其他答案使其正常工作。结束在我的从属节点启动器(批处理)脚本中设置变量:
SET PATH=C:\cygwin64\bin;%PATH%
java -jar agent.jar -jnlpUrl ...
如果在 Jenkins 中设置全局变量会伤害 OS 特定代理或需要适应相同 OS 代理之间的差异,则在代理的系统变量中设置 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
这解决了它:
前往
Jenkins -> Configure System -> Global properties -> Environment variables: name=Path, value=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin/
补充一下,因为我们遇到了类似的问题并在此处寻找答案。
在我们的案例中,全局环境变量集不起作用,但在节点配置上以完全相同的方式定义它。我们的问题是关于管道项目。无论哪种方式,Maven 项目都运行良好。请参阅定义的屏幕截图。
如果此定义在全局中,则在脚本管道中 $path 不会扩展到生成服务器上的当前路径。它只是保持恒定值 $path。如果相同的定义在节点配置 $path 上按预期展开。
当我在 Windows Server 2008 上 运行 我的构建过程时,它失败并显示类似
的错误消息Cannot run program "foo": CreateProcess: error=2, The system cannot find the file specified
我已经在 Ubuntu 服务器上遇到了类似的问题,并通过将 Composer 全局安装的二进制文件的文件夹路径添加到 Jenkins 配置中的 PATH 变量来解决它(Manage Jenkins -> Configure System -> Global properties -> Environment variables: name=PATH, value=$PATH:$COMPOSER_HOME/vendor/bin/
):
(由于将 COMPOSER_HOME
移出 /root
目录的权限也需要移动到另一个 Jenkins 可访问的目录。)
现在我在 Windows 上尝试了同样的方法,但它不起作用。所以,也许我只是将 PATH
设置错了。我尝试过的:
PATH
$PATH:D:\path\to\COMPOSER_HOME\vendor\bin
PATH
$PATH;D:\path\to\COMPOSER_HOME\vendor\bin
PATH
%PATH%D:\path\to\COMPOSER_HOME\vendor\bin
PATH
%PATH%;D:\path\to\COMPOSER_HOME\vendor\bin
如何在 Jenkins 配置中正确设置 PATH
环境变量 Windows?
我遇到的问题不是由错误的 Path
配置引起的。 %PATH%;D:\path\to\COMPOSER_HOME\vendor\bin
正确。
需要"Path",而不是"PATH"。
Jenkins 以区分大小写的方式处理这个特殊变量,只有 "Path" 被识别为路径变量。 "PATH" 在 jenkins 看来就像一个通用环境变量,即使在 Windows.
上也是如此我有一个类似的要求,要在 Windows slave 和 Windows Jenkins master 上自定义 Path 变量。我不想创建 Jenkins 全局环境变量,并希望此变量特定于特定 windows node/agent.
这是我所做的:
1) 创建了一个环境变量,如下所示 Nodes -> WindowsNode -> Configure 屏幕:
2) 断开了我的 Jenkins 节点。
3) 直接在slave上重启了我的Jenkins系统进程。
4) 通过单击 Nodes -> WindowsNode -> System Information 对其进行了测试,并看到了新的分配给节点的环境变量:
5) 然后在 Jenkins 作业中使用它,通过将以下命令添加到 Execute Windows Windows slave/agent 上 运行批处理命令 构建步骤:
git --版本
用于为从节点添加路径,如 home env 变量。
它可以是从节点配置中完成的目录。
打开任何从节点的配置设置,添加env vaiable信息。
例如设置 HOME 只需添加主目录的名称和位置。
如果您想在本地为相应的作业设置它,请在 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变量中添加各自的环境变量即可。
不要混淆值字段中的 %PATH% 与 $PATH。虽然 %PATH% 是 windows 节点的正确语法,但您应该使用 /foo/bar:$PATH 在 unix 节点
上扩展 PATH无法通过其他答案使其正常工作。结束在我的从属节点启动器(批处理)脚本中设置变量:
SET PATH=C:\cygwin64\bin;%PATH%
java -jar agent.jar -jnlpUrl ...
如果在 Jenkins 中设置全局变量会伤害 OS 特定代理或需要适应相同 OS 代理之间的差异,则在代理的系统变量中设置 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
这解决了它:
前往
Jenkins -> Configure System -> Global properties -> Environment variables: name=Path, value=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin/
补充一下,因为我们遇到了类似的问题并在此处寻找答案。
在我们的案例中,全局环境变量集不起作用,但在节点配置上以完全相同的方式定义它。我们的问题是关于管道项目。无论哪种方式,Maven 项目都运行良好。请参阅定义的屏幕截图。
如果此定义在全局中,则在脚本管道中 $path 不会扩展到生成服务器上的当前路径。它只是保持恒定值 $path。如果相同的定义在节点配置 $path 上按预期展开。