2

現在、ANT で長さタスクを使用しようとしています。より具体的には、条件付き長さタスクを作成しています。

次のように、ファイルが設定された長さよりも大きい場合、現在存在するファイルにメッセージにフラグを付けたいと思います。

<project name="ant" default="check-filesize">
<target name="check-filesize">
    <length mode="all" property="fs.length.bytes" when="gt" length="100">
    <fileset dir="size" includes="*"/>
    </length>
    <echo>sorry your file set is to large</echo>
</target>
</project>

ディレクトリ内のすべてのファイルのサイズを出力するコードは既に作成しましたが、簡潔にするためにここには含めません。

長さがエコータグを許可しない場合、 when タグが何をするのか誰も知らない場合、これを別の方法で実行できますか? 明らかに、条件に違反したときにのみエコーが発生するようにしたい

よろしくお願いします

4

2 に答える 2

2

外部ライブラリを使用せずにこれを行う方法を発見しましたが、ご協力いただきありがとうございます。方法は次のとおりです。

<project name="ant" default="check-filesize">
<target name="check-filesize">
  <fail message="Your File Exceeds Limitations Please Operator For Full Size Of Data Set>
    <condition>
      <length length="1000" when="gt" mode="all" property="fs.length.bytes">
         <fileset dir="size" includes="*"/>
      </length>
    </condition>
   </fail>
 </target>
 </project>
于 2013-04-24T07:50:36.800 に答える
0

Ant の組み込みタスクを使用してステートメントを条件付きでエコーする方法を次に示します。

<project name="ant-length" default="check-filesize">
    <target name="check-filesize" depends="get-length, echo-if-large"/>

    <target name="get-length">
        <condition property="fs.length.too.large">
            <length mode="all" when="gt" length="100">
                <fileset dir="size" includes="*"/>
            </length>
        </condition>
    </target>

    <target name="echo-if-large" if="fs.length.too.large">
        <echo>sorry your file set is too large</echo>
    </target>
</project>

サードパーティのAnt-Contrib ライブラリには、これを簡素化する<if>タスクがあります。

于 2013-04-22T14:51:30.383 に答える