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

met*_*ous 23 tree dependencies clojure leiningen

据我所知,它lein deps :tree显示了所有项目依赖项(隐式和显式)的依赖关系树.但是,"每个依赖项仅在树中显示一次".我很想看到一棵树如果做不到这一点的话,那如果库AB需要的库X,库X下都显示了AB.

有谁知道如何使用lein或其他工具?

sip*_*uel 31

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

$ lein pom
$ mvn dependency:tree -Dverbose=true 
Run Code Online (Sandbox Code Playgroud)

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

|  +- 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)
Run Code Online (Sandbox Code Playgroud)

有关dependency:tree查看其文档的更多选项.


pun*_*yal 28

但是现在可以用做leiningen通过lein deps :tree.注意deps:tree之间的空格.

  • 请停止为这个答案投票!作者似乎几乎没有读过我的文章,因为我站在旁边说“我理解`lein deps :tree`......”。这个答案并不能解决问题。 (2认同)

Mic*_*ott 3

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

{:deps {}}
Run Code Online (Sandbox Code Playgroud)

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

% clj -Stree
org.clojure/clojure 1.10.1
  org.clojure/spec.alpha 0.2.176
  org.clojure/core.specs.alpha 0.2.44
Run Code Online (Sandbox Code Playgroud)