interesting idea! It reminds me a bit of the Grape system in groovy. Groovy uses Ivy for this.
and you can grab the needed library either via annotation like @Grab(group='com.jidesoft', module='jide-oss', version='[2.2.1,2.3.0)') or method call like Grape.grab(group:'org.jidesoft', module:'jide-oss', version:'[2.2.0,)') http://groovy.codehaus.org/Grape On Wed, Jul 8, 2009 at 12:28 AM, Phil Hagelberg<p...@hagelb.org> wrote: > > > 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 > > > > -- Omnem crede diem tibi diluxisse supremum. --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---