【发布时间】:2018-10-13 04:19:19
【问题描述】:
我的问题类似于avoiding-re-building-prerequisites-in-ant,除了我的需要不涉及创建的对象,而是调用的进程,因此那里讨论的解决方案对我不起作用。至少我是这么认为的——但我是 ant 新手。
我的情况是我正在编写一组 ant 目标,并且无论调用哪个目标,我都需要只执行一次 let-call-it setup 目标。这是一个大大简化的示例:
<?xml version="1.0"?>
<project name="Ant_Test" basedir=".">
<target name="setup">
<echo message="In setup" />
</target>
<target name="do.several" depends="setup">
<echo message="In do.several, calling do.first" />
<antcall target="do.first" />
<echo message="In do.several, calling do.second" />
<antcall target="do.second" />
</target>
<target name="do.first" depends="setup">
<echo message="In do.first" />
</target>
<target name="do.second" depends="setup">
<echo message="In do.second" />
</target>
</project>
我需要 setup 只被调用一次,无论是 do.several、do.first 还是 do。第二个 被调用。根据我上面的天真尝试,调用 do.several 会导致对 setup 的三个调用。
我想过设置一个属性(我们称之为 setup.has.been.invoked),并使用它在每个目标中有条件地调用 setup,但似乎属性设置仅限于它所做的范围,所以如果在 setup 中,我将 setup.has.been.invoked 设置为 true,则该值仅存在在设置中。
我错过了什么?有没有我跳过的教程或在线文档的一部分?任何指针或提示?
【问题讨论】:
标签: ant