Maven has much better IDE tooling built on top of it. While Lein has some minor advantages for those who want to get started quickly in Clojure, it doesn't have good multi module support. The current build system significantly complicates developing projects like Storm on Yarn in ways that maven would not. I think there is also a lot to be said for a declarative build language that actually constrains you to best practices rather than encouraging everyone to roll everything from scratch (and to Ted's point, usually get it wrong).
+1 for maven. On Dec 20, 2013 4:27 PM, "Ted Dunning" <[email protected]> wrote: > The difference between Maven and Leiningen in the Apache context hasn't > even really come into view. When it comes to IP clearance, packaging in > standard ways, signing and interfacing with Nexus, Maven is going to be > worlds easier. It isn't so much about doing the things that most > developers know and care about better, it is about doing the things that > most developers don't care about, but which are *really* important to get > right. Because few developers care, very few developers will get these > things right. Maven helps with this in two ways. First, many Apache > projects use maven so there is a tribal knowledge available to help out. > Second, Maven incorporates community development into normal practice. > This means that if one project makes project signing better, everybody > wins. This community focus means that enough resources actually get spent > on the frictional parts of releasing code to make them much less painful. > > > > > > On Fri, Dec 20, 2013 at 12:29 PM, Brian O'Neill <[email protected] > >wrote: > > > +1 for a switch to maven > > > > I¹m all for lowering the hurdles for other developers to get involved. > > > > By eliminating the zeromq dependency and converting to maven, we¹ll lower > > those barriers, and increase the base of people capable of/willing to > > contribute. > > > > (the cost of submitting a small fix/enhancement right now is too high for > > the casual java developer) > > > > -brian > > > > --- > > Brian O'Neill > > Chief Architect > > Health Market Science > > The Science of Better Results > > 2700 Horizon Drive € King of Prussia, PA € 19406 > > M: 215.588.6024 € @boneill42 <http://www.twitter.com/boneill42> € > > healthmarketscience.com > > > > This information transmitted in this email message is for the intended > > recipient only and may contain confidential and/or privileged material. > If > > you received this email in error and are not the intended recipient, or > > the person responsible to deliver it to the intended recipient, please > > contact the sender at the email above and delete this email and any > > attachments and destroy any copies thereof. Any review, retransmission, > > dissemination, copying or other use of, or taking any action in reliance > > upon, this information by persons or entities other than the intended > > recipient is strictly prohibited. > > > > > > > > > > > > > > > > On 12/20/13, 3:19 PM, "P. Taylor Goetz" <[email protected]> wrote: > > > > >I was hoping not to have to ask this question, since it¹s likely to > start > > >a heated debate. But here goesŠ > > > > > >How would Storm developers feel about switching the build system from > > >Leiningen to Maven? > > > > > >This has nothing to do with personal preference (I¹m fine with either). > I > > >ask in the context of release management and integration with the ASF > > >infrastructure. > > > > > >I know Leiningen is very concise (since it uses clojure) and Maven is > > >often looked at as a ³mess of xml². And there are a lot of other > > >differences that people feel passionate about. So I¹d like to put > ³minor² > > >differences aside for a minute and focus on a few points that are > > >important from a release management perspective. > > > > > > > > >1. ASF infrastructure support > > > > > >This is probably the biggest factor. From what I can tell (I could be > > >wrong) Storm is the first ASF project to use Clojure and Leiningen, so > it > > >is not well supported from an infrastructure perspective. For example, > > >although there is a Leiningen plugin for Jenkins, it¹s not installed on > > >builds.apache.org, so we¹d have to ask INFRA to install it which could > > >take a long time. To work around that, the build would have to do a > > >temporary install of Leiningen with each build. We¹d probably have to > add > > >a bunch of support scripts as well to do things like detect test > > >failures, etc. > > > > > >Maven on the other hand is pretty much a first class citizen in terms of > > >ASF infrastructure, and using Maven makes it easy to build/sign > releases, > > >stage to Sonatype, etc. There are a wealth of plugins as well that > > >integrate well with infra for such things as publishing docs, project > > >websites, etc. > > > > > >2. Developer productivity > > >One thing lot of people seem to like about Lieningen is the ability to > > >quickly bring up a REPL and start hacking away. For this experiment, I > > >used to the clojure maven plugin > > >(https://github.com/talios/clojure-maven-plugin) and found it (for me) > to > > >be on par with Leiningen. To bring up a REPL you just type: > > > > > >`mvn clojure:repl` > > > > > > > > >To do a comparison, I put together a quick and dirty experimental branch > > >with Leiningen replaced with Maven: > > > > > >https://github.com/ptgoetz/incubator-storm/tree/maven-test > > > > > >I¹d encourage anyone to check it out play around to see what developing > > >Storm with Maven would be like. > > > > > > > > >I¹d like to hear opinions from other committers and developers. If > > >switching to Maven is something we want to do, I¹ll volunteer to do the > > >work. > > > > > >Thanks, > > > > > >Taylor > > > > > > > > > > > > >
