We're not all jumping on Leiningen, some of us are sticking with
maven, using the maven-clojure-compiler plugin, and also the
experimental Maven Polyglot Clojure build support:
It's not the "Leiningen" that's important, it's the "jumping": away
from Ant, not Maven. Every library I use had an Ant build script. I
never saw a POM.
(Apologies for this diversion. Maybe it'll be of interest to some on
this list.)
I'm somewhat swayed by Leiningen because it makes doing some things
easy (uberjar! starting a REPL! neat!), at the cost of making other
things (such as managing dependencies myself) more frustrating.
However, if it wasn't for all the people blindly deleting their Ant
build scripts, I would be sticking with my Ant workflow for another
few months. I don't think Lein is quite targeted at users like me.*
That's OK, and I'm sure it'll change over time. I'm looking forward to
more plugins arriving to perhaps allow me to define per-project tasks
(for database operations, say).
I'm not at all swayed by Maven itself. XML *and* bloated opaque
dependency management! What's not to love?
(Yes, I know it does a lot of cool stuff -- http://blog.lick-me.org/2010/01/maven-sucks/
is a good start on the pros and cons -- I just don't care about
most of that stuff, and I do care about the horrible parts.)
http://polyglot.sonatype.org/clojure.html
That certainly makes Maven's syntax less repellent, but it still has
Maven underneath.
-R
* For those who might ask "and what kind of user are you?":
* I keep up to date with Clojure master. I don't use binary releases.
* I fix bugs and make changes in my local Clojure/contrib/third-
party library trees, and I want *all* of my builds to use *those*, not
their own choice of versions. With lein/mvn I have to install a custom
version of those libraries into my repo, then change all of my
libraries to use the custom version. New build = changing every
library's project file again (or overwriting the repo version... not
sure how acceptable a solution that is). With my previous approach I
simply had to overwrite a jar (allowing my VCS to track the old
version).
* I prefer using Git commit IDs to unambiguously reference
versions, not an arbitrary version string which I have to change in a
separate commit.
* I run arbitrary Ant tasks -- such as SQL scripts -- in my
projects. I don't see that in Leiningen. I'd love someone to point me
to it.
* Not all of my projects are open-source, so I like to store their
cross-dependencies in version control, not in some custom repository
server. I don't want to have to figure out how to run my own Maven
repo somewhere, solving the auth problem again, etc. etc.
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en