在不询问用户输入的情况下运行ANT?
问题描述:
我有一个蚂蚁脚本,其中有几个input
目标有默认设置。我如何从命令行或shell执行ant,使其只接受默认值而不提示?在不询问用户输入的情况下运行ANT?
更新哇,我想这将是一个快速的。提出问题的另一种方法是,有什么方法可以在调用ANT时指定属性,而不是通过input
提示进行指定?
答
这里有几个建议,我敢肯定还有其他的选择。
最简单的方法是只取/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.
答
的解决方法是指定调用ANT在使用-Dpropertyname=propertydefaultvalue
财产。
dev/null解决方案一遍又一遍地重复输入问题! – Adam 2011-01-24 21:47:54