2011-01-24 200 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财产。

相关问题