Comment puis-je vérifier l’existence d’un dossier avec Ant?
Nous pouvons vérifier l’existence d’un fichier, mais pouvons-nous faire de même pour un dossier?
Vous utilisez la tâche disponible avec le type défini sur “dir”.
Par exemple:
La méthode standard de traitement conditionnel est la tâche conditionnelle . Dans l’exemple ci-dessous, l’exécution de doFoo fera écho à un message si le répertoire existe, alors que l’exécution de doBar fera écho à un message à moins que le répertoire n’existe.
La cible dir.check est requirejse par doFoo et doBar, elle définit la propriété dir.exists sur true ou false en fonction du résultat de la tâche disponible. La cible doFoo ne s’exécutera que si cette propriété est définie sur true et que doBar ne s’exécutera que s’il n’est pas défini ou défini sur false.
${directory} exists ${directory} missing"
Antelope fournit des tâches supplémentaires, notamment une tâche Si vous pouvez simplifier le traitement (et pour moi, plus intuitive), vous pouvez télécharger les tâches Antelope à partir de la page de téléchargement .
Voici un petit exemple incorporant l’élément available
dans un test if
.
Attention : vous avez besoin de ant-consortingb.jar dans votre répertoire ANT_HOME \ lib sinon vous n’aurez pas access aux éléments if
et votre script échouera avec cette erreur:
Problem: failed to create task or type if Cause: The name is undefined. Action: Check the spelling. Action: Check that any custom tasks/types have been declared. Action: Check that any / declarations have taken place.
Voici ma solution, qui ne nécessite pas de définir des propriétés et d’utiliser des cibles avec ‘if’ ou ‘sauf’:
Macro:
Usage:
Ma solution utilisant la version ANT 1.8, les anciennes versions peuvent ne pas fonctionner correctement si / à moins de ne pas supporter la syntaxe $ {evalTrueOrFalse}.
http://ant.apache.org/manual/properties.html#if+unless
[If / Unless] Dans Ant 1.7.1 et versions antérieures, ces atsortingbuts ne pouvaient être que des noms de propriété. À partir de Ant 1.8.0, vous pouvez plutôt utiliser l’extension de propriété. Par rapport à l’ancien style, cela vous donne une flexibilité supplémentaire.
Voici une autre approche, permet d’appeler une seule tâche sans utiliser ant-consortingb.jar.
{some task} {another task}