Leiningen 1.2 Released (Clojure build tool & more)
github.com
github.com
* Don't allow "new" task to create *jure names.
I'm not able to verify this ATM, but does this mean libraries with names ending in -jure are strictly disallowed? Granted there's probably plenty of mylibjure sort of names out there now, but this change would be quite bold.You can work on projects with names like that, you just can't use the "new" task to generate them. The official workaround is to generate a skeleton with a different name and rename it, or to use Leiningen 1.1.0. Awkward, but hey--it's an edge case. =)
The main thing you miss out on with ant is dependencies. Not only does Leiningen make it easy to depend upon other libraries, it also makes it easy to publish your library so others can depend on it. It's an ecosystem thing.
If that's not a big deal for you then the only advantage Leiningen could offer would be having one fewer violation of Greenspun's Tenth law in your life.
Also, I think that build management and generally dependency/package management is done completely wrong. The principle seems to be to manage large numbers of fine-grained, versioned, recursive dependencies. I don't think this will ever work well. The inherent complexity of that idea is always going to leak. We need to question the idea that modularity is always good.
(2) straightforward swanking
(3) dependency resolution
e.g.,
$ lein new scratch/itch
$ cd itch
$ emacs project.clj
... // add swank-clojure deps
$ cat project.clj
(defproject scratch/itch "1.0.0-SNAPSHOT"
:description "FIXME: write"
:dev-dependencies [[swank-clojure "1.2.1"]]
:dependencies [[org.clojure/clojure "1.1.0-master-SNAPSHOT"]
[org.clojure/clojure-contrib "1.0-SNAPSHOT"]]
)
$ lein deps
$ lein swank
user=> Connection opened on local port 4005
#<ServerSocket ServerSocket[addr=localhost/127.0.0.1,port=0,localport=4005]>If you don't need or care for either of those things, you can probably stick with Ant.