You are here

Čitelný výstup ze složitějšího Ant skriptu s pomocí XmlLogger

Pokud máte složitější build.xml, výstup není snadné číst a například struktura vnoření jednotlivých targetů je ztracena. Pro lepší výstup můžete použít XmlLogger (funguje i v Eclipse 3.4):

ant -logger org.apache.tools.ant.XmlLogger -logfile build_log.xml
(detaily použití lze nalézt v dokumentaci Ant listener)

Výstup vypadá takto:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="log.xsl"?>

<build time="12 seconds">
 <task location="build.xml:198: " name="echo" time="0 seconds">
  <message priority="warn"><![CDATA[Some message]]></message>
 </task>
 <target name="compile" time="11 seconds">
  <task location="build.xml:1548: " name="antcallback" time="0 seconds">
   <target name="privateCompileSingleProject" time="0 seconds">
    <task location="build.xml:1383: " name="if" time="0 seconds" />
    <task location="build.xml:1394: " name="echo" time="0 seconds">
     <message priority="warn"><![CDATA[Providing dependencies ...]]></message>
    </task>
    <task location="build.xml:1400: " name="ParseDotClasspath" time="0 seconds">
     <message priority="info"><![CDATA[Classpath: ..]]></message>
    </task>
    <task location="build.xml:1402: " name="property" time="0 seconds" />
...

Jak lze vidět, výstup je strukturovaný a jako bonus je připojena informace o délce trvání tasku a odkaz na zdrojovou řádku. Při použití vhodného XML editoru a foldingu lze pak lépe sledovat, která zpráva patří ke kterému targetu a vnoření jednotlivých targetů. Je to skoro stejné jako má IntelliJ Idea Ant Tree mode, pouze pracnější. Bohužel díky tomu, že listener připojuje i délku trvání jednotlivých tasků je log vytvořen až po provedení celého build scriptu.

Výsledné XML lze transformovat na HTML, ale transofrmací se ztratí informace o struktuře, více viz apache-ant\src\etc\log.xsl.