[I've cross posted because I think this is relevent to both lists]

I've started fixing some bugs in the Clojure support in polyglot maven. I've 
sent pull requests upstream, but until then you can get it from 
http://github.com/AntonyBlakey/polyglot-maven. It works as my default maven 
(although there are some plugins such as the Atlassian stuff that doesn't work 
in Maven 3), and is self hosting.

The simplest pom.clj, corresponding to this leiningen project:

(defproject org.clojars.the-kenny/clojure-couchdb "0.2"
  :description "Simple Clojure interface to Apache CouchDB, fork of the 
original project with function arguments instead of *server* and some other 
changes."
  :dependencies [[org.clojure/clojure "1.1.0-master-SNAPSHOT"]
                 [org.clojure/clojure-contrib "1.0-SNAPSHOT"]
                 [org.clojure/clojure-http-client "1.0.0-SNAPSHOT"]]
  :dev-dependencies [[lein-clojars "0.5.0-SNAPSHOT"]
                     [org.clojure/swank-clojure "1.0"]])

is:

(defproject main "org.clojars.the-kenny:clojure-couchdb:0.2"
  :add-default-plugins true
  :description "Simple Clojure interface to Apache CouchDB, fork of the 
original project with function arguments instead of *server* and some other 
changes."
  :dependencies [["org.clojure:clojure:1.1.0-master-SNAPSHOT"]
                 ["org.clojure:clojure-contrib:1.0-SNAPSHOT"]
                 ["org.clojure:clojure-http-client:1.0.0-SNAPSHOT"]])

The most obvious difference is in the coordinate syntax. Note that this 
includes the clojure-maven-plugin, so you get the following clojure-specific 
goals:

  clojure:compile clojure:test clojure:run clojure:repl clojure:swank 
clojure:nailgun

You can package using "mvn package", and install to the local repository using 
"mvn install". There are many other things you can do using existing maven 
plugins. I have a branch that allows leiningen-format artifact references e.g.

(defproject main org.clojars.the-kenny/clojure-couchdb "0.2"
  :add-default-plugins true
  :description "Simple Clojure interface to Apache CouchDB, fork of the 
original project with function arguments instead of *server* and some other 
changes."
  :dependencies [[org.clojure/clojure "1.1.0-master-SNAPSHOT"]
                 [org.clojure/clojure-contrib "1.0-SNAPSHOT"]
                 [org.clojure/clojure-http-client "1.0.0-SNAPSHOT"]])

The single benefit is that it would be easy to allow an existing unmodified 
project.clj to be used by maven, although without leiningen plugins. I'm not 
sure if it's worth it, and I'm interested in hearing arguments pro and con.

My next step is to make sure it's easy to write polyglot maven plugins in 
Clojure, with easy deployment.

Antony Blakey
-------------
CTO, Linkuistics Pty Ltd
Ph: 0438 840 787

Every task involves constraint,
Solve the thing without complaint;
There are magic links and chains
Forged to loose our rigid brains.
Structures, structures, though they bind,
Strangely liberate the mind.
  -- James Fallen


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

To unsubscribe from this group, send email to 
clojure+unsubscribegooglegroups.com or reply to this email with the words 
"REMOVE ME" as the subject.

Reply via email to