Comment vérifier si une propriété a la valeur en Ant
J'ai une Fourmi fichier XML que j'utilise pour construire.
J'ai 3 propriétés. J'ai envie de casser le build si ces propriétés ne contient aucune valeur. Aussi j'ai envie de casser le build si la valeur est vide.
Comment puis-je faire dans Ant?
J'ai une aide de Ant et pas Ant-contrib.
- double possible de ant de filtrage de l'échec si la propriété non définie
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser des conditions à l'aide de la
<fail>
tâche:C'est équivalent à dire
if (not set ${foo} or ${foo} = "")
est pseudocode. Vous devez lire le fichier XML conditions de l'intérieur.Vous pourriez avoir utilisé le
<unless>
clause sur la<fail>
tâche si vous ne se souciait de savoir si ou non la variable a été définie, et pas de savoir s'il a une valeur réelle.Toutefois, cela ne devrait pas échouer si la propriété est définie, mais n'a pas de valeur.
Il y a un truc qui peut faire le plus simple
Rappelez-vous que je ne peux pas réinitialiser un bien! Si
${foo}
a déjà une valeur, la<property>
tâche au-dessus de ne pas faire n'importe quoi. De cette façon, je peux éliminer la<isset>
condition. Il pourrait être bon puisque vous avez trois propriétés:Bâtiment sur les autres réponses, c'est ma forme préférée, comme une Macro:
À Être utilisé comme:
Pour des raisons de concision, vous pouvez réduire les deux échouent éléments en un à l'aide d'un
<or>
, mais je préfère mes messages d'erreur de me traiter comme je ne peux pas penser par moi-même 😉Vous pouvez essayer d'utiliser conditions... ou la création d'une cible avec à moins que
Avec Ant addon Flaka vous pouvez utiliser des formes comme :
Béton vérifier vide :
Un exemple complet, aussi à l'aide de certains est égal à vérifier avec 'eq' (en face serait 'gt'):
sortie avec ant-f build.xml -Dbuildtype=prod
et
ant -f build.xml -Dbuildtype=prod-Ddummybuild=quelle que soit
de sortie avec une faute de frappe => ant - build.xml -Dbuildtype=testt
sortie avec ant-f build.xml -Ddummybuild=quelle que soit
Je suis sur une ancienne version de Ant, donc isset n'était pas disponible. Au lieu de cela j'ai utilisé la notation suivante avec le double $ dans les égaux.