使用 Leiningen 显示完整的依赖树
Display complete dependency tree with Leiningen
我知道 lein deps :tree
显示所有项目依赖项(隐式和显式)的依赖树。但是,"each dependency is only shown once within a tree." 我真的很想看到一棵树,但情况并非如此,如果库 A
和 B
需要库 X
,库 X
出现在 A
和 B
下。
有谁知道如何使用 lein
或其他工具做到这一点?
您可以从 Leiningen 的项目定义中生成 Maven 的 POM,然后使用带有 verbose
选项的 Maven dependency:tree
插件,如下所示:
$ 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。
这现在可以通过 lein deps :tree
使用 leiningen 来完成。注意 deps 和 :tree 之间的 space。
这可以在没有 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
我知道 lein deps :tree
显示所有项目依赖项(隐式和显式)的依赖树。但是,"each dependency is only shown once within a tree." 我真的很想看到一棵树,但情况并非如此,如果库 A
和 B
需要库 X
,库 X
出现在 A
和 B
下。
有谁知道如何使用 lein
或其他工具做到这一点?
您可以从 Leiningen 的项目定义中生成 Maven 的 POM,然后使用带有 verbose
选项的 Maven dependency:tree
插件,如下所示:
$ 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。
这现在可以通过 lein deps :tree
使用 leiningen 来完成。注意 deps 和 :tree 之间的 space。
这可以在没有 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