Phing-在构建开始和结束时做一些事情,不管任务如何


Phing - Do something at start and at end of build, regardless of task

对于我的Phing构建,我想在本地文件中记录开始和结束时间。这段时间将在构建过程中用作参考,以确定在上次构建后修改了我的哪些源文件。不管调用了什么任务,我都希望它能工作。

到目前为止,我遇到了一些问题:

在记录新时间之前,我会从文件中检索开始时间。但是,当我使用foreach循环时,构建属性会被重新定义,并且新的开始时间会记录在属性中。也许我可以通过在依赖的任务中定义属性来弥补这一点,但我不想为每个任务设置这种依赖。。。

我不知道如何使某个东西最后运行,与用户选择运行的任务无关。

有什么想法吗?

在我重读您的问题时编辑整个答案-您需要它独立于任务运行的部分。

<target name="taskwrapper">
   <phingcall target="runfirst" />
   <phingcall target"${target} />
   <phingcall target="runlast" />
</target>
<target name="runfirst">
  //Do stuff first
</target>
<target name="runlast">
  //Do stuff last
</target>

然后在命令行中,您只需要将预期任务作为论据进行传递。

phing taskwrapper -Dtarget=desired_task

我还没有真正测试过这个,但看起来应该可以正常工作。