2017-09-15 2 views
0

J'ai un fichier de propriétés dans lequel l'utilisateur devrait être libre de sélectionner toute propriété disponible dans l'environnement Ant. Par exemple. ::Comment vérifier les propriétés Ant non développées

property.action=${other.property} 

Mais au moment de l'exécution, je aurais besoin de savoir que property.action est effectivement étendue à une valeur. Cependant, le texte suivant imprime '$ {other.property}' trois fois si la propriété référencée n'est pas définie.

<property name="value" prop="property.action" /> 
<echo> 
    1: ${property.action} 
    2: ${other.property} 
    3: ${value} 
</echo> 

Son pas possible de savoir au moment de l'exécution quelles sont les propriétés de la valeur de l'utilisateur contient, donc je ne peux pas simplement vérifier chacun en utilisant isset, si/égaux, etc. (j'utilise ant-contrib).

Je résoudrais cela peut-être avec une regex sur la valeur résultante, vérifiez qu'il n'y a pas d'espace réservé variable là. Mais n'y a-t-il pas une meilleure solution pour Java/Ant?

Répondre

0

L'utilisation de regex était la solution à jeun, sans objet. écriture de scripts supplémentaires ::

<propertyregex property="check" select="\1" defaultValue="" input="${value}" regexp=".*(\$\{[A-Za-z0-9_\.-]+\}).*" /> 
<fail message="User setting failure, unexpanded variable: ${value}"> 
<condition> 
    <not><equals arg1="${check}" arg2=""/></not> 
</condition> 
</fail>