Apache Maven 1.0 Released
darthcamaro writes "internetnews.com is running a story on the release of Apache Maven 1.0 this week. Maven is a very robust project-management and project comprehension tool that is unparalleled in either open source or proprietary software. '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.' From some of the comments that Van Zyl makes in the story though, it look like the upcoming 2.0 version will be the real killer app, though 1.0 is certainly nothing to sneeze at either..."
http://maven.apache.org/
I would imagine there are a lot of people (like me) who had *no idea* what this is or what it is for. Here is the one paragraph definition of it FTA:
:(
"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."
In other words, it looks like a cross between the head cheese coding despot on any development project mailinglist and an automated webmaster thingee.... a management worker bot whatever.. it's a....
I still don't know what it is
We have started using Maven for in-house development and it really simplifies things. Being able to declare dependencies on libraries, etc, and have Maven go and grab the correct versions during build is cool enough, but all of the reporting and site building tools are really incredible. The PHBs were very impressed with the code analysis reports that it generates, and the CVS annotation of code is very nice for our internal sites. It takes a little getting used to, but if you've used Ant, you're halfway there.
Derek
Don't Panic...
The Bileblog has an alternative view on Maven.
Sadly, the headline also left out the rather key information that this tool is for Java projects only.
... alas, this one is yet another myopic product of the "Java is the whole universe" generation.
... but there is a larger world out there you know.
I was quite looking forward to a revolutionary project management tool
Java is great
What I got from JAM that is useful to me:
It's technically possible but part of the point of the thing is that you don't have to spend forever writing build scripts to get going. So once there's a set of users writing plugins with better support for (e.g.) C# and C++, sure it'll be agnostic.
Right now it's effectively a Java tool since most of the plugins are for Java (jar, javac, javadoc, junit, etc).
This isn't the project you are looking for.
It is a Build Tool, not a "project management tool".
What it builds are software programs.
What it was designed for and is good at is building the software called "Apache". The more a software development project looks like the Apache one, the more likly it is a useful tool for that project.
You want a management tool. This is NOT it.
You want a nonsoftware project tool. This is NOT it.
You want a build tool for a research software project, say in AI or written in LISP. This is NOT IT.
You want a build tool for far flung contributors writting code in Java (or java like language) with all the structural details about the project already known. Bingo!!! This is the tool for you.
Unfortunately most people seem to hate it.
;-)).
Maven mailing list(s) is one of the most active ones, with +50 messages a day. Most articles and comments at ServerSide, IBM DeveloperWorks and elsewhere are quite favorable toward it. Many major projects (e.g. Geronimo) are using it.
I dont like supposed development aides thats want to tell me how I should organise everything to suit its quirks rather than my preferences.
Maven follows well established practices (e.g. directory structure) from the Apache Jakarta projects. Accustomed to Ant's freedom, I also was unhappy with some defaults/behaviors initially, but gradually all of them made sense.
Its really irritating when this demands vast amounts of configuration to achieve
I interpret this to mean that attempting to implement your quirks in Maven took vast amount of configuration to achieve, and have no objection to that.
Another massive configuration effort is required when an existing complex and rather quirky Ant build of a large application is migrated to Maven (as it was in my case, I should mention that I wrote also the Ant build
But starting with Maven on a common medium-sized app is relatively easy when using the GenApp plugin.
requires a scripting language who creator has apologised for creating an abomination
I agree here. I also do not like the idea of executable XML, of using XML as a programming language. Please note, however, that Jelly is an interface for tags in Maven used to implement plugins. In principle, any mechanism for embedding tags will do (and there is significant work in this direction for v2 AFAIK).
So, apart from personal taste, Maven is quite a solid production-ready project build and comprehension tool.
--
Svetlin