Fog Creek Software
Discussion Board

Apache Maven

Is anyone using Apache Maven ( )? If so, I'd be interested to hear what you think of it.

J2EE Newbie
Monday, August 11, 2003

I've had a look at it. It seemed to be a conglomeration of third party tools. Sounds ok, saves you the trouble of having to sort out mailing list sw. Forum, issue tracking, project docs, metrics, etc and integrating all the different packages you found. On the other hand, all those features might be overkill (e.g. are you really going to need a mailing list archiver, if you're developing with 2-10 people in the same office?)

The Maven project itself is managed by Maven and what turned me off it was a.) several of the statistics/style/metics pages were REALLY sluggish b.) I'm not sure if providing resources like Maven makes sense unless you're working on a distributed open source project, because in an (my) office environment, everyone uses their code analysis tool of choice anyhow, we don't use a mailing list, some of the services provided by maven are already in use here in the form of other tools that would have to be bent around to work with it. c.) Don't really need something like this and didn't want to spend time pursuing it further :)

Why don't you just check it out:

There's a lot of impressive reports there, but is your team really going to need/use all that information?

Monday, August 11, 2003

I'm using maven for our project right now, having migrated from a fairly substantial Ant build file. I'm not even generating any of the reports or publishing websites, just using it as a smarter build system. My impressions:


- Forces you to break your project into small, independent  pieces. Previously I had a single source tree and created outputs (JAR/EAR/WAR files, what Maven calls 'artifacts') by pattern matching class files. (Most of them were just: 'grab all the classes in this package' variety, but it got hairer.)

- Since your application is broken down so well Maven can take care of common tasks like compilation, creating outputs and running tests with no work at all.

- Once you get the hang of what goes in your project.xml and how you can extend/add goals in your maven.xml, it's a snap to add new projects.

- Integrates Ant tasks seamlessly. The docs don't make this clear (or not clear enough), but you can just call normal Ant  tasks (like 'exec') from your 'maven.xml' file.

- Declaring dependencies, including the version, and fetching them from an external repository (and an internal repository if you'd like) is a much nicer way to manage libraries than you'd do in Ant.

- The plugin architecture makes it fairly simple for folks to add new functionality -- I plan on integrating Forrest [1] as a documentation system shortly, and someone's already created a plugin.


- Migrating a project into small independent pieces is a major PITA.  I think it's worth it, but you'll probably spend a while moving files here and there and teasing out dependencies. (I created a helpful tool for generating a dependency graph [1].)

- Documentation is seriously lacking. It took way too long for me to grok how the pieces work together -- lots of assumptions throughout. Or maybe I'm just a little slow... (Plus: have I contributed yet? Nope.)

- IMO the developers are a little too antsy to move onto the next version. They're already talking about 'Maven-NG' when version 1 isn't even done yet.

My 2c, FWIW, etc....


Chris Winters
Monday, August 11, 2003


Andrew Reid
Monday, August 11, 2003

You neglect to mention the HUGE grain of salt you need when reading any of Hani's rants. He's a smart guy and has lots of valid points, but like comedians who take on a persona for their act it's important to remember that he's doing the same.

Chris Winters
Tuesday, August 12, 2003

*  Recent Topics

*  Fog Creek Home