Maven
[ jvanzyl ] 05:07, Monday, 24 October 2005

Figured I would post the whole release announcement here as it seems our entry posted to TSS isn't going to run our announcement which we posted five days ago. They posted the alpha-2 announcement so one would think they would run the announcement for the final release. Go figure. At any rate here's the full text of the announcement.

Maven is a build system that provides software project management and dependancy comprehension. Based on the concept of a project object model (POM), Maven manages a project's build, reporting and documentation from a central place.

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

  • And much more...

The Maven 2.0 release is considered stable and includes a Maven 1.0 complete feature set, with additional functionality. The most popular Maven 1.0 plugins have been converted for Maven 2.0, and many more are available in beta. See Plugin Matrix for more information on particular plugins.

Maven's advanced dependency management features rely on project metadata. If you are interested in improving support for the users of your project, see Project FAQ.

The Maven team would like to express thanks to the user and developer community for their beta testing, feedback and contributions that helped make the release possible!

To get started with Maven now, see the getting started guide: Getting Started Guide.

[ jvanzyl ] 06:50, Monday, 25 April 2005

If you're a user of Maven then you are familiar with the Project Object Model (POM) which is the basic unit of work in Maven. Maven is a project-centric tool and so we attempt to capture the essence of a project in the POM. This includes things like what your project is, where the project lives, where you can find the sources for project, who the developers are on the project and how you can get hold of them, what you need to build the project, the way your project will be built, what form your project will be distributed in, and where it will be distributed from.

By way of the POM, Maven gives users an easy way to describe, in a uniform way, all their projects. Once you know how to work with one Maven project you know how to work with them all whether they be projects of your own, projects within your own organization, or OSS project's that use Maven. Encapsulating project information in the POM allows you to to quickly get a project's build up and running which let's you focus on the project's code which is where a project's value resides.

Once you get a basic project's build working then you can turn to some of the more interesting features like the many report plugins and site generation. These are the tools that let you convey to others what your project is all about. The site is generated in a uniform way which means familiartity with one Maven site means you can easily navigate any Maven site. This is key for project comprehension. Many of these features are pretty good in Maven 1.x but we are working very hard on Maven 2.x to improve the comprehension features of Maven including a revamped site generation mechanism and a new Reporting API.

We hope to encourage the use Maven's standard way of doing things and the use of the POM in general. Our first attempt at this is the release of our Ant tasks for general artifact handling. Brett made Ant task wrappers for our maven-artifact package and released it this morning. We hope this will facilitate the use of Maven's general artifact handling mechanism but more importantly promote the use of our rich body of project metadata. At last count we had approximately 8600 artifacts in the repository most of which we have valid POMs for. That is an incredibly valuable resource.

Many exciting things will emerge as a result of our work in Maven 2.x to inprove the general state of the Maven repository. We have developed a pretty comprehensive tool for converting and validating Maven repositories and so the information we can provide on projects will utlimately carry a great deal of value.