如果与 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>
我在 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>