[ https://issues.apache.org/jira/browse/ZOOKEEPER-83?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12615764#action_12615764 ]
Hiram Chirino commented on ZOOKEEPER-83: ---------------------------------------- Flavio, 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 zookeeper-spring module. 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 including 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 interesting features. 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 > conventions > * 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.