The first beta of Apache Ant 1.7.0 is out.
Ant 1.7 doesn't come with big features that will change the way you do Ant builds like 1.6 did, it is more of a collection of bug fixes plus a set of smaller, yet useful, features.
The mayor new feature is the support for resource collections. Resource collections provide a unification of the existing file collection classes and some non-file "things" you can read from. In particular they
- unify <path>, <fileset>, <filelist> and <dirset> so that <copy> or <apply> (among others) now work on all of those types - use whatever is more appropriate for your use case.
- support set operations and sorting. For example you can now have a union of two <fileset>s, intersect a <path> and a <filelist> or sort a <fileset> by file size.
- Use <zipfileset> or <tarfileset> in many places where only "plain" <fileset>s have been supported before. You can create a tar archive from a zip file by combining the <tar> task with a <zipfileset> for example.
- introduces <url> and CLASSPATH resources as first class resources as well. You can copy things from the CLASSPATH (this includes extracting them from jars) or <gunzip> URLs, fetching and decompressing them on the fly.
The full list of changes is pretty long. My highlights (YMMV):
- <junit> doesn't require junit.jar to be on the CLASSPATH or in ANT_HOME/lib anymore, it will happily work with JUnit on the nested <classpath>.
- <rmic> now properly works on Java 5, there even is support for Mustang's -Xnew argument.
- <junit> supports JUnit 4 out of the box by wrapping JUnit 4 tests in JUnit4TestAdapter internally.
- <get> no longer re-fetches resources that are up-to-date.
- <checksum> supports several different input/output patterns and comes with support for the patterns of the GNU md5sum and BSD's md5 commands.
- <sync> can preserve selected files in the target directory that are not present in the source directory.
As usual you can expect Ant 1.7.0 to be backwards compatible. We tried our best but you might find problems - better give the beta a try, find and report the problems now so that we can fix them prior to the final release 8-).
Even though we've added some initial support for JDK 1.6 and used the Mustang betas to test Ant, there may be problems lurking.
path: /en/Apache/Ant | #
Wenn Stefan Tilkov nicht am Montag auf die Düsseldorfer Java User Group hingewiesen hätte, wäre mir Ignoranten ein wirklich netter Abend entgangen. Mir war gar nicht bewusst, dass es diese JUG gibt; OK, sie wurde von Michael Jastram auch erst Ende letzten Jahres (re-)initiiert. Offenbar reicht es nicht, nur englischsprachige Blogs zu lesen 8-)
Johannes Akinlaja und Marcel Dick gaben eine Einführung in Maven 2 und zeigten, wie schnell sich damit einfache Projekte aufsetzen lassen. Die Folien und Beispielprojekte sollten bald verfügbar sein.
Möglicherweise überschätzen beide den Wert der "transitive dependencies" - oder unterschätzen die Probleme, die damit verbunden sein können. Zumindest empfehlen sie aber, ein lokales Repository anzulegen, was helfen dürfte, die schlimmeren Probleme zu vermeiden - notfalls, indem man selber Hand an die POMs legt.
Auch das Drumherum stimmte, vom Catering vor dem Vortrag bis zu einigen wirklich interessanten Gesprächen in der Kneipe im Anschluss.
Für mich war es etwas seltsam, den Gebäude-Komplex 25 der Heinrich-Heine-Universität nach rund 10 Jahren erstmalig wieder zu betreten. Sehr viel hat sich nicht verändert, nur die Technik im Hörsal wirkte moderner.
Pfad: /de/rheinjug | #
Wenn Stefan Tilkov nicht am Montag auf die Düsseldorfer Java User Group hingewiesen hätte, wäre mir Ignoranten ein wirklich netter Abend entgangen. Mir war gar nicht bewusst, dass es diese JUG gibt; OK, sie wurde von Michael Jastram auch erst Ende letzten Jahres (re-)initiiert. Offenbar reicht es nicht, nur englischsprachige Blogs zu lesen 8-)
Johannes Akinlaja und Marcel Dick gaben eine Einführung in Maven 2 und zeigten, wie schnell sich damit einfache Projekte aufsetzen lassen. Die Folien und Beispielprojekte sollten bald verfügbar sein.
Möglicherweise überschätzen beide den Wert der "transitive dependencies" - oder unterschätzen die Probleme, die damit verbunden sein können. Zumindest empfehlen sie aber, ein lokales Repository anzulegen, was helfen dürfte, die schlimmeren Probleme zu vermeiden - notfalls, indem man selber Hand an die POMs legt.
Auch das Drumherum stimmte, vom Catering vor dem Vortrag bis zu einigen wirklich interessanten Gesprächen in der Kneipe im Anschluss.
Für mich war es etwas seltsam, den Gebäude-Komplex 25 der Heinrich-Heine-Universität nach rund 10 Jahren erstmalig wieder zu betreten. Sehr viel hat sich nicht verändert, nur die Technik im Hörsal wirkte moderner.
My fellow Ant committer Kev Jackson has written an article for ONJava titled Ant 1.7: Using Antlibs.
While Antlibs have been available since Ant 1.6.0 and Ant 1.7 won't add any big improvements here, they still seem to become more important with Ant 1.7. The reason here is that the Ant project has started (will start, actually) to release new tasks as Antlibs instead of bundling them as optional tasks - three of them are expected to get released soon and work is under way to move the Microsoft Visual Source Safe support to a separate Antlib as well. Others of the more specific tasks are bound to follow.
In his article Kev describes how to use but also how to develop an Antlib, creating an Antlib as a command line wrapper over GNU Arch on his way. He covers testing using JUnit and BuildFileTest as well as AntUnit. He probably is the first one to show a few details of it.
Kev is going to speak at ApacheCon Asia next week, BTW.
path: /en/Apache/Ant | #