手动启动ANT任务

手动启动ANT任务,ant,task,manual,Ant,Task,Manual,出于各种原因(我保证有必要使用当前的代码库进行此操作;我知道这很愚蠢),我希望在同一个构建任务中执行一个目标两次 例如,我想执行目标foo,然后执行bar,然后再次执行foo。这是我已经尝试过的简化版本: <target name="foo"> ... </target> <target name="bar" depends="foo"> ... </target> <target name="project" depen

出于各种原因(我保证有必要使用当前的代码库进行此操作;我知道这很愚蠢),我希望在同一个构建任务中执行一个目标两次

例如,我想执行目标foo,然后执行bar,然后再次执行foo。这是我已经尝试过的简化版本:

<target name="foo">
    ...
</target>

<target name="bar" depends="foo">
    ...
</target>

<target name="project" depends="foo,bar">
    ...
</target>

...
...
...
在本例中,当执行项目目标时,foo只运行一次。我还尝试去除bar目标上的depends属性,并使项目的depends属性为“foo,bar,foo”,但结果仍然相同

有没有办法强制执行任务,即使任务已经成功完成?或者有更好的方法吗?

允许显式调用目标

我认为这是一个比使用依赖机制更好的解决方案。正如您所确定的,这决定了什么已经运行。Antcall指示目标运行,而不管它以前是否运行过

您可以对调用进行参数化,以自定义它在每次调用中所做的操作。

允许您显式调用目标

我认为这是一个比使用依赖机制更好的解决方案。正如您所确定的,这决定了什么已经运行。Antcall指示目标运行,而不管它以前是否运行过


您可以对调用进行参数化,以自定义它在每次调用中所做的操作。

I Midday(伦敦)虽然:-)ant是松散地基于make和make的原则,即目标之间的依赖关系。因此,一旦目标运行,您就无法通过依赖项使其再次运行。您可能会编写一个自定义执行器(请参阅Ant docs)来通过目标依赖项执行您想要的操作,但默认执行器会执行拓扑排序,从而阻止您所需的行为。最后,仅仅使用antcall可能会更简单。我在这里(伦敦)读到:-)ant松散地基于make,make具有目标之间依赖性的原则。因此,一旦目标运行,您就无法通过依赖项使其再次运行。您可能会编写一个自定义执行器(请参阅Ant docs)来通过目标依赖项执行您想要的操作,但默认执行器会执行拓扑排序,从而阻止您所需的行为。最后,仅仅使用antcall可能更简单。