见https://ant.apache.org/manual/listeners.html
XmlLogger 在那里似乎很有帮助,如果有点过于冗长 - 您可以通过一些脚本提取调用层次结构(也带有回声):
ant -logger org.apache.tools.ant.XmlLogger 构建
Log4j 也取得了一些成功:
ant -listener org.apache.tools.ant.listener.Log4jListener -lib ..../logging-log4j-1.2.17/dist/lib/ -lib 。建造
为此,我使用上面第一个链接中的示例内容在当前目录中放置了一个 log4j.properties 文件。这会生成一个包含以下内容的 build.log:
[ 0] Project : Build started.
[ 908] Taskdef : Could not load definitions from resource checkstyletask.properties. It could not be found.
[ 995] Target : Target "build" started.
[ 4312] Echo : com.ohmy: ivy.sorted.modules=thirdparty-plugins#com.sun.jaxb
[ 4529] Taskdef : Could not load definitions from resource checkstyletask.properties. It could not be found.
[ 4588] Target : Target "build_empty_unittests_jar_to_fulfill_dependencies" started.
[ 4590] Target : Target "build_empty_unittests_jar_to_fulfill_dependencies" finished.
[ 4591] Target : Target "build_nodeps" started.
[ 4591] Echo : Calling target 'build' for module com.sun.jaxb
[ 4770] Taskdef : Could not load definitions from resource checkstyletask.properties. It could not be found.
[ 4846] Target : Target "check_module_targets_file_exists" started.
[ 4847] Target : Target "check_module_targets_file_exists" finished.
[ 4847] Target : Target "check_module_target_exists" started.
[ 4847] Target : Target "check_module_target_exists" finished.
现在我只是将它输入到小红宝石中,以缩进它:
ruby -pe 'BEGIN {$i=0};$i-=1 if /finished\.$/;print " " * $i;$i+=1 if /started\.$/' build.log
产生
[ 0] Project : Build started.
[ 908] Taskdef : Could not load definitions from resource checkstyletask.properties. It could not be found.
[ 995] Target : Target "build" started.
[ 4312] Echo : com.ohmy: ivy.sorted.modules=thirdparty-plugins#com.sun.jaxb, com.ohmy
[ 4529] Taskdef : Could not load definitions from resource checkstyletask.properties. It could not be found.
[ 4588] Target : Target "build_empty_unittests_jar_to_fulfill_dependencies" started.
[ 4590] Target : Target "build_empty_unittests_jar_to_fulfill_dependencies" finished.
[ 4591] Target : Target "build_nodeps" started.
[ 4591] Echo : Calling target 'build' for module com.sun.jaxb
[ 4770] Taskdef : Could not load definitions from resource checkstyletask.properties. It could not be found.
[ 4846] Target : Target "check_module_targets_file_exists" started.
[ 4847] Target : Target "check_module_targets_file_exists" finished.
[ 4847] Target : Target "check_module_target_exists" started.
[ 4847] Target : Target "check_module_target_exists" finished.
[ 4847] Target : Target "module_target" started.
[ 4847] Target : Target "module_target" finished.
[ 4847] Target : Target "default_target" started.
[ 4849] Target : Target "init" started.
[ 4850] Target : Target "check_module_ivy_file_uptodate" started.
[ 4858] Target : Target "check_module_ivy_file_uptodate" finished.
[ 4858] Target : Target "create_module_ivy_file" started.
[ 4858] Target : Target "create_module_ivy_file" finished.
[ 4859] Target : Target "check_build_file_uptodate" started.
[ 4862] Target : Target "check_build_file_uptodate" finished.
[ 4864] Target : Target "generate_module_build_file" started.
[ 4864] Target : Target "generate_module_build_file" finished.
[ 4865] Target : Target "update_module_build_file" started.
[ 4866] Target : Target "check_module_name" started.
[ 4868] Target : Target "check_module_name" finished.
[ 4869] Target : Target "check_manifest_version" started.
[ 4869] Echo : Calling target 'check_manifest' for module com.sun.jaxb
[ 5041] Taskdef : Could not load definitions from resource checkstyletask.properties. It could not be found.
[ 5065] Target : Target "check_module_targets_file_exists" started.
[ 5065] Target : Target "check_module_targets_file_exists" finished.
[ 5065] Target : Target "check_module_target_exists" started.
[ 5065] Target : Target "check_module_target_exists" finished.
[ 5065] Target : Target "module_target" started.
[ 5065] Target : Target "module_target" finished.
[ 5066] Target : Target "default_target" started.
[ 5066] Target : Target "default_check_manifest" started.
[ 5067] Target : Target "default_check_manifest" finished.
[ 5067] Target : Target "default_target" finished.
[ 5067] Target : Target "module_specific_target" started.
[ 5067] Target : Target "module_specific_target" finished.
[ 5068] Target : Target "check_manifest_version" finished.
[ 5068] Target : Target "update_module_build_file" finished.
[ 5069] Target : Target "ivy_retrieve" started.
[ 5069] Echo : Skipping 'ivy_retrieve' as everything is uptodate for com.sun.jaxb
....
当然这可以改进,但现在对我来说已经足够了:)