オプションのパラメータをantタスク呼び出しに渡したいので、呼び出されたターゲットが省略された場合(条件で重要またはunless
またはif
の属性を使用するときに重要)、呼び出されたターゲットに設定されていないものとして表示されるようにします。 optArgが設定されているかどうかわかりませんので、パラメータをハードコードできません。<ant>タスクコールのオプションパラメータ?
例:AntターゲットsomeTargetはmandatoryArg必須パラメータを必要とし、オプションのパラメータOPTARGをサポートしています。
私はそうのようなcludgy重複することによって、これを達成することができます:
<if><equals arg1="${optArg}" arg2="true" />
<then>
<ant dir="someDir" target="someTarget" inheritAll="false">
<property name="mandatoryArg" value="42" />
<property name="optArg" value="true" />
</ant>
</then>
<else>
<ant dir="someDir" target="someTarget" inheritAll="false">
<property name="mandatoryArg" value="42" />
</ant>
</else>
</if>
私はアリコールがOPTARGのオプションの本質を失うことなく、重複しないようにif文を省略したいと思います。私はすでにthis questionを見つけましたが、これは別の問題をカバーしています。
私はAnt 1.7とant-contribを使用しています。
アイデア?ありがとう!
編集:それは本当に不可能である理由を説明する回答も受け入れます。
して後に単一
<ant>
タスクコールの内側にそれを参照するかもしれませんが、 'バッククォートでコードスニペットを囲むようにしてくださいこのようにあなたのコードが表示されるようにします。乾杯〜 –@David:有望だと思うが、どうすればプロパティセットに追加するつもりだろうか?コードサンプルを提供できますか?ありがとう! –
よろしくお願いします。 mandatoryArg *と* optArgを含むプロパティセットを定義します。これは、参照されるたびに動的に評価されます。次に、antcallが発生すると、実際に定義されているプロパティのみが含まれます。だから私は答えを受け入れるだろう。 –