RealTime IT News

Apache's Maven Comes of Age

One of the most critical parts of Java development is understanding the complete state of a development effort as quickly as possible. That's the goal of Apache's Maven project, which released its milestone 1.0 release this week.

"Maven has a long history of pushing out beta after beta, so this is definitely an important release," Jason Van Zyl, Maven architect release manager, told internetnews.com. "For users it means that they will have something reliable now for their production builds."

Maven defines itself as a project-management and project-comprehension tool. Its project object model (POM) controls the development and management of a project. The POM controls builds, document creation, site publication and distribution publication and can be stored in an XML file. Maven also provides a set of tools to enable developers to automatically generate a number of critical items, such as source metrics; mailing, developer and dependency lists; software development process documentation; change logs based directly on source repository; and source cross-references.

"Maven is akin to Perl's CPAN where you have repositories with build artifacts and an easy way to build projects," explained Van Zyl. "But as far as I know it has no model like Maven: the POM, which is really a canonical source for project information that allows generating sites and reports very easy."

It's that ease of generating reports and project information that in Van Zyl's opinion is bringing new users to Maven.

"We're getting a high rate of conversion because the small cost of making a POM provides a great deal -- a site, all the reports, the use of all the plugins and an easy way to build your project," he said. "The philosophy is that it should be easy to build, and all creative energy should be focused on developing your application. Not messing around with a build system makes good sense."

According to Van Zyl, Maven is used extensively for small builds, though it's multi-project build capability is where it truly shines. "We have users with builds that have over 100 components," he said. "Uniformity over a large number of builds is what Maven strives to give its users. You're never just building one thing. People use Maven because it's easy to create small builds quickly and manage them effectively."

Though Maven 1.0 is a tremendous achievement for the development team, Van Zyl is focused on continuing innovation. The 1.0 release is going to be quickly followed up by an alpha version of the 2.0 release within the next six weeks, Van Zyl said. "There are no commercial products like Maven that I know of, but with the advent of Maven 2.0, I think you will see the incorporation of Maven into many commercial tools," Van Zyl said.

The reason for that expected incorporation into commercial tools is Maven 2.0's focus on embeddability. That embeddability is targeted on making use of Maven in IDE's 'dead simple,' as well as incorporating maven into third-party tools."

In fact Van Zyl foresees a time when Maven will be a standard in all IDEs. "Projects like the Maven plugin tools for Eclipse and NetBeans, will become far more popular and it won't be long before Maven is a standard in all IDEs," he said. "I am even hoping that Maven might play some part in unifying IDEs in some fashion through the use the Maven POM."