我理解lein deps :tree
显示所有项目依赖项(隐式和显式)的依赖关系树。但是,"每个依赖项仅在树中显示一次。"我真的很想看到一棵树不是这样的,如果图书馆A
和B
需要图书馆X
,那么图书馆X
显示在A
和B
下。
是否有人知道如何使用lein
或其他工具执行此操作?
答案 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