Migrated. Originally posted: 2008-02-03
While searching for Ant ways to loop over a bunch of builds and do the same thing to each, I recently had a look at Ant 1.7. It has been out for over a year, so it may show up in distros any time now. Debian will have it in “sid”, or you can use it from “sid” unstable now if you need it.
I also found out some interesting Ant tasks: <foreach> and <cc>, and the Ant subprojects Antlibs and Ivy.
Here is the description of Ant 1.7, from the Apache Ant website:
December 19, 2006 – Ant 1.7.0 Available
Apache Ant 1.7.0 is now available for download.
Ant 1.7 introduces a resource framework. Some of the core ant tasks such as are now able to process not only file system resources but also zip entries, tar entries, paths, … Resource collections group resources, and can be further combined with operators such as union and intersection. This can be extended by custom resources and custom tasks using resources.
Ant 1.7 starts outsourcing of optional tasks to Antlibs. The .NET antlib in preparation will replace the .NET optional tasks which ship in Ant. Support for the version control system Subversion will be only provided as an antlib to be released shortly. (Yes! and they have released it since then.)
Ant 1.7 fixes also a large number of bugs.
Ant 1.7 has some initial support for Java6 features.
In reading over some of the docs I hadn’t read before, I found out about something called ant_contrib which contains the “foreach” task and the “cc” task suite.
I hope to use <foreach> at work, where we use ant to launch a bunch of builds on different machines. Some people want to replace “make” with something easier and cleaner. If you like ant, then you need to consider the “cc” tasks.
Ant now has two sub-projects: Antlibs and Ivy. Antlibs allows add-ons to Ant to be released more quickly. That’s where their SVN support is located now.
Ivy is for “dependency management”. If you have several projects in your SCM, some of which require the same packages at build or run time, you might consider Ivy to help you manage them, possibly with a local repository to hold those packages. Maven is a competitor for Ant, which has dependency management built-in. Ivy is Ant’s way of catching up.