Andy Fingerhut <
andy.fi...@gmail.com> writes:
Hi Andy,
> I haven't actually run across this before, but I suspect someone else
> has. I was curious how people handle it.
>
> Suppose you have your project A, and it uses Leiningen (the issue is
> more widely applicable, but for the sake of example).
>
> * A depends on some version of library B, which in turn depends on
> library Z version 2
> * A also depends on some version of library C, which in turn depends
> on library Z version 3
I ran into that issue, where library Z was actually clojure itself in
versions 1.2.0 and 1.3.0 (and my own lib wanted 1.4.0-betaX).
The solution was to use Leiningen's :exclusions keyword.
:dependencies [[org.clojure/clojure "1.4.0"]
[foobar "1.1.0" :exclusions [org.clojure/clojure]]
...]
That means, depend on the foobar lib 1.1.0, but ignore its clojure deps.
Of course, that only works, if foobar is compatible with clojure 1.4.0
but just doesn't manifest that in its :dependency spec.
Bye,
Tassilo