Hiram Chirino commented on ZOOKEEPER-83:
maven provides a much more standardize build process than ant. Any maven java
project has the same directory structure and build/release procedure.
Therefore new contributors who are familiar with maven will be more comfortable
contributing to ZooKeeper because of it.
It handles lots of the wonky ASF relase rules like:
* GPG sighing
* staging release artifacts to get voted on.
* building binary distros with api docs
* building source distros
* including and verifying LICENSE and NOTICE files are in all jars
* It can run the rat tool for you to verify that all source files have the
right headers on them
It encourages folks to use your project
* It deploys your jar artifacts to a centralized maven repository where other
projects can automatically pull your libs into their builds.
* the maven repo is a sort of eco system, where if your artifacts are available
in it, folks are more willing to use your stuff, and they in turn pubish
artifacts the depend on ZooKeeper which in turn might get used by someone else
who transitively gets ZooKeeper
* It encourages good release patterns like including the version number in the
jar. Nice to have so that when folks use your jars it is obvious what version
they are using.
It encourages good modularization/decoupling:
* It's easy to add additional jars to the project and then add dependencies
between them. This encourage folks to decouple their code properly.
* Once you have a nicely modular project, it easy for folks to add additional
optional modules for new features. For example I could see folks wanting a
Plus it does lots of useful things like:
* generate IDE project files so that they don't need to be manually maintained.
* it can enforce checkstyle rules if desired
* Runs findbugs and cobertura
* It can creates great set of cross indexed html docs about the build
Plus since it's declarative in a nature, folks can use other maven plugins
against the build (without changing the build files) to access additional
Maven in general is more higher level concept than ANT. It brings power and
flexibility to the table. Plus it's the direction most new java projects are
taking these days.
So I think the question really is why keep ANT?
> Switch to using maven to build ZooKeeper
> Key: ZOOKEEPER-83
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-83
> Project: Zookeeper
> Issue Type: Improvement
> Components: build
> Reporter: Hiram Chirino
> Assignee: Hiram Chirino
> Attachments: zookeeper-mavened.tgz
> Maven is a great too for building java projects at the ASF. It helps
> standardize the build a bit since it's a convention oriented.
> It's dependency auto downloading would remove the need to store the
> dependencies in svn, and it will handle many of the suggested ASF policies
> like gpg signing of the releases and such.
> The ZooKeeper build is almost vanilla except for the jute compiler bits.
> Things that would need to change are:
> * re-organize the source tree a little so that it uses the maven directory
> * seperate the jute bits out into seperate modules so that a maven plugin
> can be with it
This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.