我正在处理一个相对较大的项目,到目前为止,构建都是在NAnt构建脚本中完成的。最近,有一小部分开发是在ruby中完成的,并且是使用rake文件构建的。我想创建一个调用rakefile的NAnt目标。NAnt构建中的当前设置:(请注意,rakefile与NAnt脚本位于不同的目录中)
<property overwrite="false" name="project.rootdirectory" value="${project::get-base-directory()}" />
<property overwrite="false" name="rake.exe" value="rake.bat" />
<target name="callrake">
<exec program="${rake.exe}" verbose="true">
<arg value="build:foo" />
<arg line="-f ${project.rootdirectory}/../pathtorakefile" />
</exec>
</target>当我运行nant callrake时收到的错误是:
[exec] ruby.exe: No such file or directory -- c:/pathtoNAntscript/rake (LoadError)
c:/pathtoNAntscript/NAntscript.build
External Program Failed: rake.bat (return code was 1)安装了Ruby和rake,Ruby bin在path变量中。不确定为什么NAnt似乎不能调用rake。
发布于 2012-11-28 03:41:40
通过调用cmd.exe并将rake命令作为文本传递给它,可以解决此问题:
<exec program="cmd.exe" verbose="true">
<arg line="/c ${rake.exe} build:foo" />
<arg line="-f ${project.rootdirectory}/../pathtorakefile/Rakefile.rb" />
</exec>https://stackoverflow.com/questions/13574021
复制相似问题