2 votes

Utilisation d'une longueur conditionnelle dans ANT

J'essaie actuellement d'utiliser la tâche de longueur dans ANT, plus précisément de réaliser une tâche de longueur conditionnelle.

Je veux marquer un message dans un fichier existant si le fichier dépasse une longueur définie, comme suit :

<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>

J'ai déjà écrit le code pour imprimer la taille de tous les fichiers dans le répertoire mais je ne l'ai pas inclus ici pour rester bref.

Si la longueur ne permet pas l'utilisation de la balise echo, puis-je effectuer cette opération d'une autre manière, sinon, quelqu'un sait-il ce que fait la balise when ? Il est évident que je veux que l'écho se produise uniquement lorsque la condition est violée.

Merci d'avance

2voto

ah414 Points 93

J'ai découvert un moyen de le faire sans utiliser de bibliothèques externes, mais merci pour votre aide. voici comment :

<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>

0voto

Chad Nouis Points 5448

Voici une façon de faire écho conditionnellement à une déclaration en utilisant les tâches intégrées de 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>

Le tiers Bibliothèque Ant-Contrib a un <if> tâche qui simplifie les choses.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X