2011-01-24 1 views
1

J'ai un script ant avec plusieurs cibles input dont les valeurs par défaut sont définies. Comment puis-je exécuter Ant à partir de la ligne de commande ou du shell de sorte qu'il acceptera simplement les valeurs par défaut et ne pas demander?Exécuter ANT sans demander à l'utilisateur d'entrer?

Mise à jour Wow, je pensais que ça allait être rapide. Une autre façon de poser la question est de savoir s'il est possible de spécifier les propriétés quand ANT est appelée au lieu de input invites?

Répondre

3

Voici quelques suggestions, je suis sûr qu'il existe d'autres alternatives.

La plus simple option est de prendre simplement l'entrée de /dev/null:

ant < /dev/null 

(. Je pense que sur Windows, vous pouvez utiliser NUL pour faire la même chose) Cela se traduira par défaut utilisé.

Mais peut-être une approche plus utile consiste à fournir un fichier de propriétés qui définit les valeurs que vous voulez pour chaque entrée sollicitée en utilisant un inputhandler. Les éléments suivants liront les valeurs d'entrée du fichier properties.txt.

export ANT_OPTS=-Dant.input.properties=properties.txt 
ant -inputhandler org.apache.tools.ant.input.PropertyFileInputHandler 

Chaque entrée dans le fichier de propriétés se compose d'une ligne comme

prompt_string=value 

Vous ajoutez une propriété pour chaque demande d'entrée. Si différentes entrées utilisent la même invite, cela peut être difficile ou tout simplement ne pas fonctionner. Il existe d'autres inputhandlers aussi.

L'autre possibilité (comme vous l'avez mentionné) consiste à définir chacune des propriétés qui sont demandées sur la ligne de commande Ant en utilisant -Dprop.name=value. Alors Ant utilisera les valeurs fournies et n'essaiera pas de vous inviter. Vous verrez ce genre de chose dans le journal dans ce cas:

[input] skipping input as property prompt.one has already been set. 
+0

La solution dev/null répète la question d'entrée encore et encore! – Adam

+0

@Adam - oh chéri - quel OS est-ce? Fonctionne pour moi sur OS X ... Aussi, quelle version de Ant? –

+0

RH 2.16 et ANT 1.8.1 Rien de trop inhabituel – Adam

3

La solution consiste à spécifier la propriété à l'aide -Dpropertyname=propertydefaultvalue lorsque vous appelez ANT.

Questions connexes