2

我正在处理一个相对较大的项目,到目前为止,构建已经在 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 在路径变量中。不知道为什么 NAnt 似乎不能调用 rake。

4

1 回答 1

1

这个问题通过调用 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>
于 2012-11-27T19:41:40.300 回答