我有一个包含多个input
目标的ant脚本,这些目标设置了默认值。如何从命令行或shell执行ant,以便它只接受默认值而不是提示?
更新哇,我以为这会很快。问这个问题的另一种方法是,有什么方法可以在调用ANT而不是通过input
提示时指定属性吗?
答案 0 :(得分: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.
答案 1 :(得分:3)
解决方案是在调用ANT时使用-Dpropertyname=propertydefaultvalue
指定属性。