Ant 1.8.0 released

The Apache Ant team just announced Ant 1.8.0.  The most stunning change is that of lexically scoped local properties.  Now, you can keep a property scoped to a target, or a sequential block.  Hopefully this will mean poeple rely less on ant-contrib.   Many people appear to misunderstand the Ant properties mechanism; maybe they are going with the flow. I do admit it's convenient to have local variables inside your macrodef sequential blocks.

Congratulations, Ant team! Here's the rest of the changes (from the announcement):


  • <import> can now import from any file- or URL-providing resource - this includes <javaresource>.
  • Various improvements to the directory scanning code that help with symbolic link cycles (as can be found on MacOS X Java installations for example) and improve scanning performance. For big directory trees the improvement is dramatic.
  • The way developers can extend Ant's property expansion algorithm has been rewritten (breaking the older API) to be easier to use and be more powerful.
  • a new top level element extension-point allows build files to be extended with custom targets more easily
  • At the same time the if and unless attributes have been rewritten to do the expected thing if applied to a property expansion (i.e. if="${foo}" will mean "yes, do it" if ${foo} expands to true, in Ant 1.7.1 it would mean "no" unless a property named "true" existed). This adds "testing conditions" as a new use-case to property expansion.
  • Ant now requires Java 1.4 or later
  • new task include provides an alternative to <import> that should be preferred when you don't want to override any targets
  • numerous bug fixes and improvements as documented in Bugzilla and in WHATSNEW

via Apache Ant - Welcome.

DevOps New Zealand