2011-01-24 7 views
1

私はいくつかのinputターゲットを持つantスクリプトを持っています。コマンドラインやシェルからantを実行して、デフォルトを受け入れるだけで、プロンプトを受け取らないようにするにはどうすればいいですか?ユーザーに入力を求めずにANTを実行しますか?

更新うわー、私はこれが速いものになると思っていました。質問をする別の方法は、ANTがinputプロンプトの代わりに呼び出されたときにプロパティを指定できる方法はありますか?

答えて

3

ここにいくつかの提案がありますが、私は確かに他の選択肢もあります。

最も簡単なオプションは、ちょうど/dev/nullからの入力を取ることです。

ant < /dev/null 

(私はあなたが同じことを行うためにNULを使用することができますWindows上だと思う。)が使用されているデフォルト値をもたらすこと。

おそらくもっと便利な方法は、inputhandlerを使用して、プロンプト入力ごとに必要な値を設定するプロパティファイルを指定することです。以下は、ファイルproperties.txtから入力値を読み込みます。

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

プロパティファイルの各エントリには、あなたは、各入力プロンプトのプロパティを追加

prompt_string=value 

のようなラインで構成されています。異なる入力が同じプロンプトを使用している場合、これはやりにくくなるか、まったく動作しないことがあります。

他にもinputhandlersがあります。

もう1つの可能性は(言及したように)-Dprop.name=valueを使用してAntコマンドラインでプロンプトされた各プロパティを設定することです。 Antは指定された値を使用し、プロンプトを表示しません。あなたはそのような場合にはログにこの種のものが表示されます:

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

dev/null解決策は入力質問を何度も繰り返します! – Adam

+0

@アダム - ああああ - どのようなOSですか? OS X上で私のために働く...また、Antのどのバージョン? –

+0

RH 2.16とANT 1.8.1あまりにも普通ではありません – Adam

3

ソリューションは、ANTを呼び出すとき-Dpropertyname=propertydefaultvalueを使用して、プロパティを指定することです。

関連する問題