Leiningen is the best build tool for Clojure projects, while Maven is the first class citizen in ASF Infrastructure. Can we keep them both? Just like Nathan’s storm-starter: https://github.com/nathanmarz/storm-starter , the project itself is managed by Leiningen, but storm user who knows only maven can use the https://github.com/nathanmarz/storm-starter/blob/master/m2-pom.xml there to build.
On 2013年12月21日, at 上午5:26, 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 >>> >>> >> >> >>
