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
“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
“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.”