I've been noodling on the problem of dependency management for a while now. It's definitely a pain point for projects with more than a couple dependencies. Currently our approach has been to use maven, but that involves a fair amount of arcane knowledge as well as writing a bunch of XML, which isn't a lot of fun. But there's been a community consensus that any dependency tool needs to be able to leverage all the valuable stuff out there that's currently in maven repositories.
I've put together a proof-of-concept dependency manager called Corkscrew. It uses Maven under the hood as well as offering dependencies on source packages stored in git or subversion. A simple project.clj file lays out the dependencies and other project info: {:name "my-sample" :version "1.0" :dependencies [["tagsoup" "1.2" "org.ccil.cowan.tagsoup"] ;; group defaults to name ["rome" "0.9"]] :source-dependencies [["clojure-contrib" "r663" :svn "http://clojure-contrib.googlecode.com/svn/trunk"] ["enlive" "95b2558943f50bb9962fe7d500ede353f1b578f0" :git "git://github.com/cgrand/enlive.git"]]} You can install it with: $ git clone git://github.com/technomancy/corkscrew.git $ cd corkscrew $ ./install $ cp bin/corkscrew /somewhere/on/your/path Create a project.clj file in your project root based on the one above. Then you can use "corkscrew deps" to set everything up for you. At that point just make sure your classpath includes target/dependency/ and you should be good to go. It's simple, but it solves the main problems that I've been having with more complicated projects. I'd love to get some opinions on it. The biggest issue right now is that it runs Maven as a subprocess rather than using the Java API in the same VM because I can't make head or tail of the Maven Java API (it uses plexus.core), but shelling out works as a proof-of-concept even if it's tacky. -Phil --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---