>From my googling, the only way to solve this in the general case (IE the java case) is through using OSGi. I have no idea what the state of compatibility is between clojure and OSGi at this time. I'd be curious to find out in fact. Here's the stackoverflow.com page I found that describes the situation as I understand it:
http://stackoverflow.com/questions/1553567/java-classloader-how-to-reference-different-versions-of-a-jar On Jan 21, 9:21 pm, Richard Newman <holyg...@gmail.com> wrote: > Hi folks, > > Apparently everyone is jumping on the Leiningen bandwagon and deleting > their build.xml files. I guess that means I'm moving, too. > > Now, I like to keep track of Clojure master. Right now, Clojure > reports "Clojure 1.2.0-master-SNAPSHOT". > > (I don't see that in Maven Central or in Clojars, so I guess I have to > put it in my local repository...?) > > Unfortunately, not everybody keeps up-to-date like I do; most of the > projects I use demand "1.1.0-alpha-SNAPSHOT". I'm sure there are still > projects that demand 1.0. > > Adjusting the lein script to use my local Clojure install gave me a > great error: > > Caused by: java.lang.NoSuchMethodError: clojure.lang.RestFn.<init>(I)V > at clojure.contrib.with_ns$with_ns__7929.<init>(with_ns.clj:20) > at clojure.contrib.with_ns__init.load(Unknown Source) > at clojure.contrib.with_ns__init.<clinit>(Unknown Source) > at java.lang.Class.forName0(Native Method) > at java.lang.Class.forName(Class.java:247) > at clojure.lang.RT.loadClassForName(RT.java:1523) > at clojure.lang.RT.load(RT.java:396) > at clojure.lang.RT.load(RT.java:378) > at clojure.core$load__4869$fn__4876.invoke(core.clj:4294) > at clojure.core$load__4869.doInvoke(core.clj:4293) > at clojure.lang.RestFn.invoke(RestFn.java:409) > at clojure.core$load_one__4810.invoke(core.clj:4130) > at clojure.core$load_lib__4825.doInvoke(core.clj:4167) > at clojure.lang.RestFn.applyTo(RestFn.java:143) > at clojure.core$apply__3434.invoke(core.clj:478) > at clojure.core$load_libs__4841.doInvoke(core.clj:4193) > at clojure.lang.RestFn.applyTo(RestFn.java:138) > at clojure.core$apply__3434.invoke(core.clj:480) > at clojure.core$use__4865.doInvoke(core.clj:4271) > at clojure.lang.RestFn.invoke(RestFn.java:409) > at leiningen.core$eval__5$loading__4758__auto____6.invoke(core.clj:1) > at leiningen.core$eval__5.invoke(core.clj:1) > at clojure.lang.Compiler.eval(Compiler.java:5349) > > and I saw a similar problem with builds that referred to libraries > built with different versions of Clojure. > > How do people deal with this? How can one simultaneously use two > libraries which have hardwired dependencies on two different Clojure > versions, each of which might be mutually incompatible? > > What's the community protocol around locally installing Clojure 1.2, > and adding that as a dependency for a published library? > > What's the right way to get lein itself to use a recent Clojure build, > rather than the version with which it ships? > > Thoughts -- and answers! -- welcome. > > Thanks, > > -R -- 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