3

誰かがコードで「if」、「and」、「not」、「istrue」を使用したAnt条件プロパティの例で私を説明できますか?

私はAntを初めて使用するので、これについてサポートが必要です。

基本的に私はFTPを使用してファイルをダウンロードする必要があります。ダウンロードするコードがあります。しかし、ダウンロードする前に確認する必要のある条件はほとんどありません。

  1. ダウンロードする前に、Downloadstatusvariable値(通常はtrueまたはfalseの値)を確認してください。
  2. ファイルがすでにダウンロードされているか、パスで使用可能かどうかを確認します
  3. 両方の条件が失敗した場合は、FTPダウンロードコードを実行します。

前もって感謝します。

4

3 に答える 3

12

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をお読みになることをお勧めします。

お役に立てば幸いです。

于 2012-07-19T00:34:43.193 に答える
1

標準のAntには「if」タスクはありませんが、「condition」タスクを使用することで、必要なほとんどすべての条件付きロジックを実行できます。http://ant.apache.org/manual/Tasks/condition.htmlを参照してください。いくつかの例について。

ant-contribライブラリには「if」タスクを含む一連の追加タスクがありますが、ビルド環境が複雑になるため、本当に必要な場合を除いて、これを使用しないことをお勧めします。

于 2012-07-18T18:58:42.127 に答える
0

Ant Contrib Taskを使用してみていますか?。そこにあるリンクをクリックすると、ドキュメントには、各タスクを通じて達成したいことを例とともに説明しています。

いくつかの関連する例はここにあるかもしれません:SteveJのブログ

于 2012-07-18T18:53:40.843 に答える