我想打印每个Ant目标及其相关目标的执行时间。
<target name="target1" depends="target2, target3">
....
</target>
运行时应显示以下输出
Target 2 - x seconds
Target 3 - y seconds
Target 1 - z seconds
有关如何实现这一目标的任何建议吗?
答案 0 :(得分:46)
自Ant 1.8.0起,您可以使用profilelogger来执行此操作。
ant -logger org.apache.tools.ant.listener.ProfileLogger target
生成类似
的输出目标aTarget:1月22日星期四开始 09:01:00 CET 2009
回声:开始于1月22日星期四09:01:00 CET 2009年 [echo] echo-task 回复:finishedThu 1月22日09:01:00 CET 2009年(250毫秒)zip:从1月22日星期四09:01:00开始 2009年 [zip]建筑拉链:... \ my.zip
zip:finishedThu Jan 22 09:01:01 CET 2009(1313ms)
目标aTarget:已于1月22日结束 09:01:01 CET 2009(1719ms)
答案 1 :(得分:8)
使用Ant附加任务集合中的一个侦听器:
-listener net.sf.antcontrib.perf.AntPerformanceListener
或检查他们的来源,并推出自己的听众。
答案 2 :(得分:3)
如果你正在使用ant-contrib,那么就有一个秒表任务。将它放在每个目标的顶部和底部,它将报告已用时间和总时间。
答案 3 :(得分:1)
您可以使用TStamp
任务来标记其他任务。
见这里:http://ant.apache.org/manual/Tasks/tstamp.html
有一些扩展/插件可以为您完成所有操作而无需执行此操作。如果没有人首先提出它,它会争分夺秒。