我有一台装有Cygwin 1.7.35的远程Windows计算机,我们将它用作Jenkins的CI测试的从属程序。
我创建了一个Jenkins作业来构建一个Maven项目(在从存储库克隆之后)。
Jenkins包含Cygpath 1.5插件,到Cygwin的注册表路径是软件/Cygwin/Setup
我使用一个PreStep从存储库克隆该项目:
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...我尝试将路径变量从C:\cygwin64 64\bin重写为C:/cygwin64 64/bin和back。我先在Cygwin 1.7.32上试了一下,然后又在1.7.35上试了一下。我尝试将注册表条目中的路径从C:\Cygwin64 64更改为C:Cygwin64 64\bin和back。毫无办法。
我的同事用同一个从服务器在同一个Jenkins服务器上构建他的项目,但是他使用的是一个build.xml的Ant项目,它工作得很好。
请问你对如何解决这个问题有什么建议吗?
谢谢!
彼得
发布于 2015-04-17 14:44:39
我找到了答案。
我创建了一个新的注册表项
软件\\Cygwin\ string瞄准cygwin64。
这很奇怪,因为在我的Jenkins中,我使用cygpath 1.5,它应该可以找到Cygwin安装的正确路径,该路径位于注册表路径软件\Cygwin\setup下。
我还必须更改Jenkins从机配置,因为在全局Jenkins设置中,从机Java版本与Java版本不同。
我希望有人发现这有帮助!彼得
发布于 2015-08-20 21:13:17
我查看了抛出异常的文件的源代码,发现它希望从键中得到一个字符串。
'HKLM/SOFTWARE/Wow6432Node/Cygwin/setup‘
名为“rootdir”,它具有到Cygwin安装的绝对路径。
编辑:我最终创建了键‘设置’,因为它不存在。
https://stackoverflow.com/questions/29631090
复制相似问题