Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure 使用Leiningen显示完整的依赖关系树_Clojure_Tree_Dependencies_Leiningen - Fatal编程技术网

Clojure 使用Leiningen显示完整的依赖关系树

Clojure 使用Leiningen显示完整的依赖关系树,clojure,tree,dependencies,leiningen,Clojure,Tree,Dependencies,Leiningen,我知道lein-deps:tree显示所有项目依赖项(隐式和显式)的依赖项树。然而,“每个依赖项在一个树中只显示一次。”我真的希望看到一个不是这种情况的树,如果库a和B需要库X,库X会同时显示在a和B下 有人知道如何使用lein或其他工具来实现这一点吗?您可以从Leiningen的项目定义中生成Maven的POM,然后使用Maven的依赖项:tree插件和verbose选项,如下所示: $ lein pom $ mvn dependency:tree -Dverbose=true 这将列出由

我知道
lein-deps:tree
显示所有项目依赖项(隐式和显式)的依赖项树。然而,“每个依赖项在一个树中只显示一次。”我真的希望看到一个不是这种情况的树,如果库
a
B
需要库
X
,库
X
会同时显示在
a
B


有人知道如何使用
lein
或其他工具来实现这一点吗?

您可以从Leiningen的项目定义中生成Maven的POM,然后使用Maven的
依赖项: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
的更多选项,请参见其。

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

这可以在不使用Leiningen的情况下完成。使用最小的
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

。谢谢对于那些无法访问
mvn
的用户,可以在Ubuntu上运行
sudo-apt-get-install-maven
。它使用缩进来表示依赖关系,这使得阅读起来很痛苦。OP提到他们已经在使用
lein-deps:tree
。请停止对这个答案的投票!!!作者似乎几乎没有读过我的文章,因为我站在那里说“我理解
leindeps:tree
…”。这个答案并不能解决问题。我很欣赏
tools.deps
(我现在正在使用)的答案,但不幸的是,这并不能回答问题。与
lein-deps:tree
一样,
clj-Stree
只打印每个dep一次,因此它在确定可能存在依赖冲突的位置时没有那么有用。这似乎最近发生了变化,现在
clj-Stree
打印了所有内容吗?