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 に答える