A few days after Apache Commons Compress 1.3 has been released the Compress Antlib has seen a new release as well. This gives Ant support for Zip64 extensions, the Unix dump format (read-only) and the Pack200 format.

Prior to this release Pack200 support has already been available via a a task at java.net but the Compress Antlib also adds a pack200resource as well as a pack200normalize task that can be used to "normalize" a JAR so that it can be signed, packed and unpacked with the signature remaining valid.

path: /en/Apache/Ant | # | Writebacks

Ant releases have become more frequent than my blog posts by now, oh my. I won't promise anything.

While most of the world was on vacation Antoine (again) put together a new relase of Apache Ant and announced 1.8.2 late December. As usual a full list of fixed issues can be found in Bugzilla. This time it not only contains bug fixes (quite a few of them, though) but also some new features like improved support for Apache Harmony, gcj and OpenJDK7 (where javac likes to break command line backwards compatibility again).

The issues that came up most frequently and have been fixed are "xslt no longer uses the specified classpath" and "propertyfile with prefix doesn't work as expected" IIRC.

We've added a new collection so that the order of files inside <copy> has become predictable. Detecting Ant 1.8.2 means either

  <antversion property="Ant-1.8.2-or-later"
              atleast="1.8.2"/>

or

  <available property="Ant-1.8.2-or-later"
             classname="org.apache.tools.ant.util.LinkedHashtable"/>

path: /en/Apache/Ant | # | Writebacks

Last weekend Antoine announced Ant 1.8.1. This is more or less a pure bugfix release which addresses a few important issues. The fix with the biggest impact likely is that <extension-point> and <import> finally work together as intended - and even documented.

The full list of issues raised against Ant that have been fixed with this release can be found in Bugzilla. We've adressed almost all issues raised against Ant 1.8.0 so far.

Thanks to the new <augment> task, detecting Ant 1.8.1 means either

  <antversion property="Ant-1.8.1-or-later"
              atleast="1.8.1"/>

or

  <available property="Ant-1.8.1-or-later"
             classname="org.apache.tools.ant.taskdefs.AugmentReference"/>

path: /en/Apache/Ant | # | Writebacks

So Apache Ant 1.8.0 is out and I'm supposed to follow a tradition I started with Ant 1.6.2. If you can be sure that you are at least using Ant 1.7.0 then the built-in <antversion> task/condition will do:

  <antversion property="Ant-1.8.0-or-later"
              atleast="1.8.0"/>

otherwise the trick of checking for a class that has been introduced with Ant 1.8.0 can always be used:

  <available property="Ant-1.8.0-or-later"
             classname="org.apache.tools.ant.types.resources.MappedResource"/>

path: /en/Apache/Ant | # | Writebacks

Antoine Levy-Lambert has recently built the first release candidate for Ant 1.8.0 and called for a vote, so we should be close to the first Ant release since eighteen months. This release mostly brings enhancements and bug fixes to many tasks and types (this is the real strength of Ant IMHO) but there also are a few core changes, the full list is here.

My personal top five changes (I know there are six items, but the first one doesn't count ;-):

extension-point and some changes in import and its new cousin include have been inspired by Easyant which can now use an un-patched version of Ant together with a custom ProjectHelper to create a build system quite different from Ant's original ideas. ProjectHelper is the mechanism that allowed me to sketch JavaFront or Nicolas Lalevée to write GroovyFront which lets you write build files in Groovy.

path: /en/Apache/Ant | # | Writebacks