Cygwin Cruisecontrol无法执行命令

时间:2009-07-15 20:31:24

标签: cygwin cruisecontrol

我有一个我希望成为一个简单问题的东西。然而,这让我整天难过。

我在Windows中使用cruisecontrol,通过Cygwin建立。我在linux平台上有一些CC经验,我正在做的很多非常相似。但是,我尝试在config.xml文件的Schedule部分中执行的大多数命令都会出错。

以下是例外:

ExecBuilder - Could not execute command: /cygdrive/d/Program\ Files/Subversion/bin/svn
net.sourceforge.cruisecontrol.CruiseControlException: Encountered an IO exception while attempting to execute 'net.sourceforge.cruisecontrol.builders.ExecScript@b80f1c'. CruiseControl cannot continue.
at net.sourceforge.cruisecontrol.builders.ScriptRunner.runScript(ScriptRunner.java:133)

以下是我尝试运行的一些命令示例,这些命令会产生此类错误。

<exec command="${CCLoc}/projects/${project.name}/IOSdllScript"/>

- 运行我在cruisecontrol.bat之外测试的脚本并运行。包括#!/ bin / sh作为第一行

<exec command="${CCLoc}/projects/${project.name}/EmptyFile"/>

- 实际上是一个空文本文件,证明问题与我的脚本无关。

<exec command="/cygdrive/d/Program\ Files/Subversion/bin/svn" args="cleanup" workingdir="${svndir}"/>

-Trys svn清理目录。我仔细检查了路径和拼写。

我测试的一个命令工作但没有给出这个错误。那个命令很触动。

<exec command="touch" args="ABC.txt"/>

我不确定为什么只有触摸似乎工作而没有别的。

1 个答案:

答案 0 :(得分:0)

回复:GrzegorzOledzki的评论:

正确,但你给了我一个想法,最终帮助了这个,虽然它远非理想的解决方案。

我注意到所有失败的命令都使用了路径,而有效的命令却没有。考虑到这一点,我还尝试了一些其他的东西。

有效的方法:

<exec command="touch" workingdir="projects" args="ABC.txt"/>
<exec command="svn" args="cleanup" workingdir="${svndir}/Iosdll"/>

这些路径必须是相对的而不是绝对的fyi :(

仍然无效的事情:

  

尝试使用此脚本运行我的脚本   格式(相同的错误)

     

尝试运行没有的脚本   存在(同样的错误!!!)

     

执行多个exec命令...   像一个自上而下的程序(只运行   第一)

显然,这个ExecScript IO异常是某种泛型无法运行命令错误。用command =“path / script”或command =“script”workingdir =“path”搞乱没有结果。所以我刚进入/ etc / profile(cygwin的bash_profile等价物)并将我的脚本路径添加到PATH。现在这种作品。

<exec command="IOSdllScript.bat"/>

编辑:在通过Cygwin时,似乎作为批处理文件比脚本更好。

我仍然想知道如何以“正确”的方式做到这一点,IE而不必更改cygwin的PATH变量。