ant-contribは広く使用されているライブラリであり、if / else / for / foreachタスクを使用すると、複雑なantスクリプトを簡単に記述できるだけでなく、antスクリプトをより読みやすくすることができます。
しかし、あなたが主張するので:)
これまで私がこれを処理した方法は、プロパティXが設定されている場合にのみ実行されるタスクAを設定し、タスクAを条件をチェックしてプロパティXがtrueの場合に設定するタスクBに依存させることです。例えば:
<target name="get-ftp-file" depends="check-need-ftp-file" if="ftp.call.required">
<ftp ... />
</target>
<target name="check-need-ftp-file">
<condition property="ftp.call.required">
<and>
<not>
<!-- Checks if Downloadstatusvariable variable is true -->
<istrue value="${Downloadstatusvariable}"/>
</not>
<not>
<!-- Checks if file is present in filesystem -->
<available file="${my.file}"/>
</not>
</and>
</condition>
</target>
編集:
coolgokul、<and>
および<not>
タスクは標準の論理演算子です。上記<available>
の例の条件は、ファイルがローカルマシンに存在する場合にtrueと評価されます。ただし、ファイルがローカルマシンに存在しない場合にのみファイルをダウンロードするため、<not>
タスクでファイルをラップします。チェックについても同様です${Downloadstatusvariable}
。これが正しくないことを確認したいので、を使用<istrue>
してからでラップし<not>
ます。
最後に、変数がtrueでなく、ファイルが存在しないことを確認する必要があるため、これらの条件を両方ともでまとめ<and>
ます。英語に翻訳すると、「Downloadstatusvariableは真ではなく、ダウンロードしたファイルは利用できませんか?」と質問しています。
条件演算子の詳細については、http://ant.apache.org/manual/Tasks/conditions.htmlをお読みになることをお勧めします。
お役に立てば幸いです。