我有一个装有Jenkins代理和Cygwin的Windows 7和Windows Server 2012从属服务器。我想避免使用Cygwin,而只使用Windows的Git随附的Git Bash外壳程序(我认为它称为msysgit)。因此,我将重命名C:\cygwin64为C:\cygwin64.bak,C:\cygwin64\bin从路径中删除,然后重新启动。
C:\cygwin64
C:\cygwin64.bak
C:\cygwin64\bin
Windows 2012框现在可以正常工作,运行(Unix)Shell脚本$OSTYPE = msys,和uname = MSYS_NT-6.3(指示Git Bash Shell正在运行)。
$OSTYPE = msys
uname = MSYS_NT-6.3
Windows 7框将不运行任何内容,并出现以下错误:
在工作空间C:\ Users \ Jenkins \ workspace \ TEST [win7]中的win7上远程构建$ sh -xe C:\ Users \ jenkins \ AppData \ Local \ Temp \ hudson5047939025129374618.sh 系统找不到指定的文件 致命:命令执行失败的 java.io.IOException:无法运行程序“ sh”(在目录“ C:\ Users \ Jenkins \ workspace \ TEST”中):CreateProcess 错误= 2,系统找不到指定的文件。 在java.lang.ProcessBuilder.start(ProcessBuilder.java:1041)
所以我的问题是,如何配置Jenkins使用C:\Program Files\Git\bin\sh.exe或C:\Program Files\Git\usr\bin\bash.exe运行Shell脚本?
C:\Program Files\Git\bin\sh.exe
C:\Program Files\Git\usr\bin\bash.exe
我已经解决了。詹金斯将只选择路径中的第一个sh.exe。Git Bash在处有一个exe C:\Program Files\Git\usr\bin,因此,如果将其添加到路径的开头,它将由Jenkins提取。
C:\Program Files\Git\usr\bin
进行此更改后,您必须重新启动从属与Jenkins的连接,否则路径将不会传播。如果您使用的是Java Web Start,只需关闭Java窗口并重新启动它。