1

私がやりたいことは次のとおりです。

    <exec executable="thrift" dir="${thriftsrc}">
        <arg value="--gen java"/>
        <arg value="-out ${src}"/>
        <arg value="mqlServer.idl"/>
    </exec>

C:\Windows\System32\ に thrift.exe をコピーしたので、ファイルは間違いなく PATH にあります。.exe の有無にかかわらず、いくつかの実行可能な引数、フルパスを試しましたが、どのバリアントでも機能しません。

しかし、これは非常にうまく機能しています:

   <exec executable="perl" dir="${generators}">
        <arg value="compactTalib.pl"/>
        <arg value="${talibsrc}"/>
    </exec>

ant ビルドでthirft コンパイラを起動する方法はありますか?

4

2 に答える 2

0

thriftコマンドの呼び出し方法は次のようになります。

<exec executable="thrift" dir="${thriftsrc}">
    <arg value="--gen"/>
    <arg value="java"/>
    <arg value="-out"/>
    <arg value="${src}"/>
    <arg value="mqlServer.idl"/>
</exec>

また、タスクに追加failonerrorすることを検討してください。<exec>

<exec executable="thrift" dir="${thriftsrc}" failonerror="yes">

これにより、トラブルシューティングに役立つエラー メッセージで Ant スクリプトが終了します。

于 2013-05-13T14:54:04.433 に答える
0

まず、DOS プロンプトに移動し、「thrift」と入力します。それは「機能」しますか?エラーが発生すると思いますが、少なくともexeを見つけてください。exe が見つからない場合は、Ant に戻る前にその問題を解決してください。

次に、Ant で ${thriftsrc} をエコーし​​ます。それは C:\Windows\System32 ですか? そうでない場合は、dir 引数を省略します。オプションなので、とにかく削除してパスを使用することができます。

最後に、あなたがまだ直面していない別の問題を見つけました。これは、単一のパラメーター「--gen java」として渡されます。

<arg value="--gen java"/>

ドキュメントの関連部分は次のとおりです。

スペース文字を含む単一のコマンドライン引数であり、コマンド「-l」と「-a」を分離するものではありません。

于 2013-05-11T22:44:15.533 に答える