Dear Clojurians, the recent discussions about dependency handling and a personal need led me to look at Ivy. I'm a bit annoyed to have to include a 2.5MB contrib.jar when I just want to use defvar.
So I started playing with Ivy. I modified the build system of contrib to create one jar per module. The modules are organised as configurations. To use eg. pprint and def simply add a dependency to your ivy.xml:<dependency org="org.clojure" name="clojure-contrib" rev="latest.integration" conf="default->def,pprint"/>
This retrieves only the def and pprint jars. Refering to eg. miglayout or lazy_xml will automatically retrieve the miglayout resp. the xmlpull jar. Everything depends on the tapestry build of clojure hosted by Howard Lewis Ship. To play with the patch apply it to clojure.contrib. Build the jars: % ant Publish the artifacts to the local repository: % ant publish-local Now you can use the artifacts in your own projects. % ant clean % ant clean-local may be used to clean the build and the repository. This is not production ready, yet. It is quite verbose, which I'm not a fan of.... Maybe some Ant or Ivy gurus might want to give some tips? Sincerely Meikel PS: The test stuff is probably broken. I only tested the build part of the system.
contrib-ivy2.diff
Description: Binary data
smime.p7s
Description: S/MIME cryptographic signature