如果与ant-contrib foreach任务一起使用,则多次调用Ant输入

时间:2015-11-02 12:48:26

标签: ant ant-contrib

我在build.xml文件中有这段代码片段。

<input message="Please enter environment:" addproperty="environment" defaultvalue="dev"/>

<target name="DeployComposites">
  <echo>Deploying projects ${composite.list}</echo>
  <foreach list="${composite.list}" param="compositeName" target="compile-and-deploy" inheritall="false"/>
</target>

输入会多次提示输入属性值。有没有办法让它只询问一次

1 个答案:

答案 0 :(得分:1)

foreach的工作方式为每次调用所需目标创建一个新的Ant Project。由于您在顶层有input,因此每次创建新Project时都会调用它。

相反,将其放在另一个目标中,例如

<target name="get-env">
  <input message="Please enter environment:" addproperty="environment" defaultvalue="dev"/>
</target>

<target name="DeployComposites" depends="get-env">
  <echo>Deploying projects ${composite.list}</echo>
  <foreach list="${composite.list}" param="compositeName" target="compile-and-deploy" inheritall="false"/>
</target>