使用Jenkins和Windows slave进行Cygpath故障排除
我有一台安装了Cygwin 1.7.35的远程Windows计算机,我们将其用作Jenkins进行CI测试的从机 我创建了一个Jenkins作业来构建一个Maven项目(在从存储库克隆之后) Jenkins包含Cygpath 1.5插件,Cygwin的注册表路径是SOFTWARE/Cygwin/Setup 我使用PreStep从存储库克隆项目:使用Jenkins和Windows slave进行Cygpath故障排除,windows,maven,jenkins,cygwin,cygpath,Windows,Maven,Jenkins,Cygwin,Cygpath,我有一台安装了Cygwin 1.7.35的远程Windows计算机,我们将其用作Jenkins进行CI测试的从机 我创建了一个Jenkins作业来构建一个Maven项目(在从存储库克隆之后) Jenkins包含Cygpath 1.5插件,Cygwin的注册表路径是SOFTWARE/Cygwin/Setup 我使用PreStep从存储库克隆项目: source ~/.profile > /dev/null cd /cygdrive/c rm -rf .$WORKSPACE/project-n
source ~/.profile > /dev/null
cd /cygdrive/c
rm -rf .$WORKSPACE/project-name
hg clone something something
存储库克隆工作正常。
生成失败,我在控制台输出中遇到以下错误:
ERROR: Failed to parse POMs
hudson.util.IOException2: Failed to locate Cygwin installation. Is Cygwin installed?
at hudson.plugins.cygpath.CygpathLauncherDecorator$GetCygpathTask.getCygwinRoot(CygpathLauncherDecorator.java:138)
etc...
我尝试将Path变量从C:\cygwin64\bin重写为C:/cygwin64/bin并返回。
我先在Cygwin 1.7.32上试过这个,然后又在1.7.35上试过。
我尝试将注册表项中的路径从C:\Cygwin64更改为C:Cygwin64\bin并返回。
什么都不管用
我的同事在同一个Jenkins服务器上用同一个从服务器构建了他的项目,但是他使用了一个带有build.xml的Ant项目,它工作得很好
请问,你对如何解决这个问题有什么建议吗
谢谢
彼得我找到了答案
我在下面创建了一个新的注册表项
软件\Cygnus解决方案\Cygwin\
字符串rootdir指向cygwin64
这很奇怪,因为在我的Jenkins中,我使用cygpath 1.5,它应该找到Cygwin安装的正确路径,该路径位于registry path SOFTWARE\Cygwin\setup下
我还必须更改Jenkins从机配置,因为从机Java SDK版本与全局Jenkins设置中的Java SDK版本不同
我希望有人觉得这有帮助!
Peter我查看了引发异常的文件的源代码,发现它需要一个来自键的字符串 “HKLM/SOFTWARE/Wow6432Node/Cygwin/setup” 名为“rootdir”,具有Cygwin安装的绝对路径 编辑:我最终创建了密钥“设置”,因为它不存在