Display complete dependency tree with Leiningen

metasoarous picture metasoarous · Oct 13, 2015 · Viewed 9.7k times · Source

I understand that lein deps :tree displays a dependency tree of all the project dependencies (implicit and explicit). However, "each dependency is only shown once within a tree." I'd really like to see a tree where this wasn't the case, and that if libraries A and B require library X, library X shows up under both A and B.

Does anyone know how to do this with lein or some other tool?

Answer

siphiuel picture siphiuel · Oct 13, 2015

You can generate Maven's POM out of Leiningen's project definition and then use Maven's dependency:tree plugin with a verbose option, like this:

$ lein pom
$ mvn dependency:tree -Dverbose=true 

This will list dependencies omitted for various reasons, e.g.:

|  +- ring:ring-core:jar:1.4.0:compile
|  |  +- (org.clojure:clojure:jar:1.5.1:compile - omitted for conflict with 1.7.0)
|  |  +- (org.clojure:tools.reader:jar:0.9.1:compile - omitted for conflict with 0.10.0-alpha3)
|  |  +- (ring:ring-codec:jar:1.0.0:compile - omitted for duplicate)

For more options to dependency:tree see its documentation.