Printing Ant target execution time

2019-01-22 12:52发布

I want to print the execution time taken for each individual Ant target and its dependent targets.

<target name="target1" depends="target2, target3"> 
....
</target>

When run should show following output

Target 2 - x seconds
Target 3 - y seconds
Target 1 - z seconds

Any suggestions on how to achieve this?

标签: ant
4条回答
叛逆
2楼-- · 2019-01-22 13:08

If you're using ant-contrib, then there is a stopwatch task. Put it at the top and bottom of each target and it will report the elapsed and total times.

http://ant-contrib.sourceforge.net/tasks/tasks/index.html

查看更多
Rolldiameter
3楼-- · 2019-01-22 13:14

Since Ant 1.8.0 you can use a profilelogger to do this.

ant -logger org.apache.tools.ant.listener.ProfileLogger target

Produces output like

Target aTarget: started Thu Jan 22 09:01:00 CET 2009

echo: started Thu Jan 22 09:01:00 CET 2009 [echo] echo-task

echo: finishedThu Jan 22 09:01:00 CET 2009 (250ms)

zip: started Thu Jan 22 09:01:00 CET 2009 [zip] Building zip: ...\my.zip

zip: finishedThu Jan 22 09:01:01 CET 2009 (1313ms)

Target aTarget: finishedThu Jan 22 09:01:01 CET 2009 (1719ms)

查看更多
手持菜刀,她持情操
4楼-- · 2019-01-22 13:26

Use one of the listeners from Ant add-on task collections:

Or check their sources, and roll your own listener.

查看更多
甜甜的少女心
5楼-- · 2019-01-22 13:28

There is the TStamp task that you can use to demark your other tasks.

See here: http://ant.apache.org/manual/Tasks/tstamp.html

There is some extension/addon that will do it all for you without having to do this. Will scrabble around for it if no-one comes up with it first.

查看更多
登录 后发表回答