The Apache Software Foundation has released of Maven 2.0, an open source build tool for Java that's more declarative and less procedural than Ant. (That was a lot faster than I expected. I thought this release was months away. I guess some projects move faster than others.) According to the announcement,
Maven 2.0 is a rewrite of the popular Maven application, designed to both address previous functional requirements and provide a stable platform for extending and enhancing its build management framework.
This release is significantly faster and smaller than Maven 1.0 and includes the following usability and performance improvements:
- Enhanced Dependency Management - includes dependency closures (transitive dependencies), version ranges, automatic build numbering, and automatic updating on a configurable interval
- Defined Build Lifecycle - developers can build any type of project using standard commands such as compile, test and install
- Unified Project Definition - manages all required build information in a single POM now, including project information, dependencies and plugin configuration
- Extended Plugin Architecture - supports Java and scripting languages such as Beanshell for plugin development
- Better Repository Support - includes separated snapshot repositories, a new more managable layout and per-project definitions of new repositories
- Expanded Reactor Operation - offers built-in support for multiple projects (without the need to perform a full install cycle to compile all projects) and support for project aggregation
- New Site Management Tools - supports multiple input and output formats, with input formats including wiki-like APT format and docbook, while continuing to support traditional Maven XDoc and FAQ format.
- New Reporting API - offers a standardised method for producing project information and reports
The elimination of Jelly in favor of Java should be a real improvement. Extending Maven 1.0 is vastly too difficult. If plug-ins exist to do what you want, it's no big deal. If not, you really don't want to try writing your own. However, not all plugins have been upgraded to supoprt Maven 2.0 yet, so you may nto want to upgrade quite yet.
I've posted the fifth beta of
XOM 1.1, my free-as-in-speech (LGPL)
dual streaming/tree-based API for processing XML with Java.
Version 1.1 maintains backwards compatibility with XOM 1.0 while adding a number of important new features including XPath queries, document subset canonicalization, exclusive XML canonicalization,
external XSLT parameters, and xml:id
support.
The API is now considered to be stable, and probably won't change before 1.1 final.
Beta 5 fixes one bug in the Canonicalizer and makes a couple more
small optimizations.
This may be the last beta before the final release of XOM 1.1.
XOM requires Java 1.2 or later and is published under the LGPL.