Java News from Sunday, May 15, 2005

The Eclipse Project has posted the seventh milestone of Eclipse 3.1, an open source integrated development environment (IDE) for Java. Eclipse also doubles as a base platform for your own applications, an alternative to the AWT and Swing, and a powerful floor wax and dessert topping. The main new features in 3.1 are Ant 1.6, quick fixes for serial version IDs, and support for Java 1.5.

The milestones are beginning to stabvilize and new features in this release are relatively minor. Mostly M7 focuses on improving performance. new features include undo and redo for refactoring. There are also lots of small improvements here and there in the user interface. For instance, the code folding arrows now look different from the override and implements indicators.

The Apache Software Foundation has posted the second alpha of Maven 2.0, an open source build tool for Java that's more declarative and less procedural than Ant. Maven is also much more authoritarian and less configurable than Ant. I've been using Maven lately as part of my work with the Jaxen project, and it has some nice features but I really can't recommend it. It's too controlling. If your build process doesn't look like what Maven wants it to look like, you're going to be fighting against it. Maven's probably a little easier to set up than Ant for basic tasks like build, test, and deploy. However, as soon as you want to do something a little different than Maven expects, you're S.O.L. It's really Maven's way or the highway. According to the Maven site,

Maven 2.0 will feel very different to a Maven 1.0 user - and perhaps a little strange. But it is a lot simpler to work with! The key changes from Maven 1.0 are:

The elimination of Jelly and the use of Java should be a real improvement. Extending Maven 1.0 was vastly too difficult. If plug-ins existed to do what you wanted, it was no big deal. If not, you really didn't want to try writing your own. For instance, Maven supports the Clover code coverage tool I use for XOM but but not the Cobertura code coverage tool I use for Jaxen. It was easier to write a separate Ant build file just for test coverage than to write a Maven extension to support Cobertura.

Alpha 2 adds basic site generation, improved error handling, automatic plugin updates and Ant tasks for Maven 2.0. There's also more documentation. Only the coire plugins are available sop far, but if that's all you need and you don't mind bleeding a little, you may be able to use this.