Skip to main content
Jump to: navigation, search


Proposal: Ant buildfile refactorings

There is a need of tool for refactoring of ant scripts.

Ant macros can be used to achieve re usability of scripts. A macrodef, short for a macro definition, can be seen as defining a reusable piece of Ant functionality – if you think of it in terms of Java code, this would be a reusable utility method. An import is a way to include external Ant functionality into another script.

A macrodef for compiling Java code using the javac Ant task could look like this:

<macrodef name="m_compile">

  <attribute name="build.dir" default="${build.dir}" />
  <attribute name="" default="default.classpath" />
  <attribute name="src.dir" default="${}" />
     <mkdir dir="@{build.dir}" />
     <javac destdir="@{build.dir}" debug="${debug}"
        <classpath refid="@{}" />
        <src path="@{src.dir}" />



<import file="${buildfiles.dir}/macro/compile.xml" />

This statement imports the XML from the compile.xml file into the place where the import statement is.

Challenges and Risks

It will be interesting to see how deep I can go into developing this enhancement to platform ant. Risks: I don't affevt any of the current functionalities.

Back to the top