2011-01-24 194 views
1

我有一個螞蟻腳本,其中有幾個input目標有默認設置。我如何從命令行或shell執行ant,使其只接受默認值而不提示?在不詢問用戶輸入的情況下運行ANT?

更新哇,我想這將是一個快速的。提出問題的另一種方法是,有什麼方法可以在調用ANT時指定屬性,而不是通過input提示進行指定?

回答

3

這裏有幾個建議,我敢肯定還有其他的選擇。

最簡單的方法是隻取/dev/null輸入:

ant < /dev/null 

(我想在Windows中可以使用NUL做同樣的),這將導致違約使用。

但也許更有用的方法是提供屬性文件,該文件使用inputhandler爲每個提示的輸入設置所需的值。以下內容將讀取文件properties.txt的輸入值。

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

屬性文件中的每個條目由一行像

prompt_string=value 

您要爲每個輸入提示添加屬性。如果不同的輸入使用相同的提示,這可能會變得棘手,或者顯然不起作用。

還有其他的inputhandlers

另一種可能性(如您所提到的)是使用-Dprop.name=value來設置Ant命令行中提示的每個屬性。然後Ant將使用這些提供的值,而不是試圖提示。你會在這種情況下,在日誌中看到這樣的事情:

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

dev/null解決方案一遍又一遍地重複輸入問題! – Adam 2011-01-24 21:47:54

3

的解決方法是指定調用ANT在使用-Dpropertyname=propertydefaultvalue財產。

相關問題