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
-~----------~----~----~----~------~----~------~--~---

Reply via email to