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

Ant input called multiple times if used with ant-contrib foreach task

我在 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>

输入多次提示 属性 value.Is 有办法让它只询问一次

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>