与Leiningen一起显示完整的依赖关系树

时间:2015-10-13 03:53:58

标签: clojure tree dependencies leiningen

我理解lein deps :tree显示所有项目依赖项(隐式和显式)的依赖关系树。但是,"每个依赖项仅在树中显示一次。"我真的很想看到一棵树不是这样的,如果图书馆AB需要图书馆X,那么图书馆X显示在AB下。

是否有人知道如何使用lein或其他工具执行此操作?

3 个答案:

答案 0 :(得分:28)

您可以使用Leiningen的项目定义生成Maven的POM,然后使用Maven的dependency:tree插件和verbose选项,如下所示:

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

这将列出由于各种原因而省略的依赖关系,例如:

|  +- 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)

有关dependency:tree的更多选项,请参阅documentation

答案 1 :(得分:26)

现在可以使用lein deps :tree使用 leiningen 来完成此操作。请注意 deps :tree 之间的空格。

答案 2 :(得分:3)

这可以在不使用Leiningen的情况下使用tools.deps来完成。使用最小的deps.edn文件,例如:

{:deps {}}

然后使用以下命令查看树:

% clj -Stree
org.clojure/clojure 1.10.1
  org.clojure/spec.alpha 0.2.176
  org.clojure/core.specs.alpha 0.2.44