Esoteric Ant Hacks

When debugging ant build scripts (fun wow,) sometimes you want to view the contents of a path reference, this handy hack does just the trick:

<echo message="${toString:pathref}"/>

It probably also works for other “classes” as well.

After a little more digging around (my ant is a little rusty) the proper way to do this is to convert your path reference to a property:

<property name="class.path" refid="class.path.ref"/>

Finally a little sugar to print out your classpath in a human readble form:

<!-- pretty print the class path so it is human readable -->
<macrodef name=\"print_classpath\">
 <attribute name=\"path\"></attribute>
 <attribute name=\"description\" default=\"=== CLASSPATH ===\"></attribute>
    <for list=\"@{path}\" param=\"pathitem\" delimiter=\";\">
          <echo>pathitem == @{pathitem}${line.separator}</echo>

Note you will need the for loop from ant contrib to use this macro/task

<<taskdef resource=\"net/sf/antcontrib/antlib.xml\" classpathref=\"\">

Leave a Reply