Hi Sven, When you're sure the project depending your library does also has a dependency on a third library, it's best to use the ":provided" profile, rather than declaring it in the :dev profile. In your case there are two possible solutions: 1. the dependency higher up wins. So if you declare the schema dependency above the dependency on A, this should work. 2. modify the dependency vector in B's profile.clj so that it's something like [A "0.1.0" :exclusions [schema]]. See https://github.com/technomancy/leiningen/blob/stable/sample.project.clj#L48 for an example.
I hope this helps you. zilti Am Freitag, 8. April 2016 21:36:50 UTC+2 schrieb Sven Richter: > > Hi, > > I have a library A that I use in project B. Now, library A makes use of > plumatics schema, as well as project B. I wonder what the best practice is > here. > Include schema in library A's dependencies? Or only declare a > dev-dependency on schema in library A? > > If I declare a dev-dependency I require every project that depends on > library A to include schema as a dependency, otherwise it will not work (I > have seen that with database libs for instance). I find that a bit unlucky, > because one might end up referring a lot of libs that other libraries > depend on. > > Or, include it as a direct dependency in library A. But then strange > things may happen as I had it with schema. Library A included schema v > 1.0.5 and project B schema v 1.0.3. > Now when I executed code in project B I had a weird schema error saying > that something in the schema is wrong, during compile time. In the end it > turned out that I have to require schema v 1.0.5 in project B too to make > it work. This is even more troublesome, as I make every project, that > depends on my library, depend on a transitive dependency in a specific > version. > > Looking at gradle for instance there is a configuration called > 'providedCompile' which means it is used for compilation of the library, > but not a transitive dependency if I include that library. Is there > something similar for leiningen? > > Best Regards, > Sven > -- 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 --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.