我正在尝试检查文档中描述的SBT依赖关系树:
sbt inspect tree clean
但我得到了这个错误:
[error] inspect usage:
[error] inspect [uses|tree|definitions] <key> Prints the value for 'key', the defining scope, delegates, related definitions, and dependencies.
[error]
[error] inspect
[error] ^
怎么了?为什么SBT不建树?
6条答案
按热度按时间v1l68za41#
如果您想实际查看库依赖关系(就像使用Maven一样)而不是任务依赖关系(
inspect tree
显示的内容),那么您需要使用sbt-dependency-graph插件。将以下内容添加到您的项目/plugins.sbt(或全局plugins.sbt)。
然后,您可以访问
dependencyTree
命令和其他命令。ghg1uchk2#
sbt inspect tree clean
将:inspect
命令,tree
命令,clean
命令这显然是失败的,因为
inspect
需要一个参数。这将做你想要的:11dmarpk3#
在sbt 1.4.0中,
dependencyTree
任务在sbt中可用,而无需使用插件:sbt-依赖关系图包含在sbt 1.4.0中:
sbt 1.4.0将Johannes Rudolph的sbt-dependency-graph插件引入到代码库中。由于它为每个子项目注入了许多任务,插件被分成两部分:
MiniDependencyTreePlugin
,默认启用,将dependencyTree
任务带入Compile
和Test
配置project/plugins.sbt
中启用的全强度DependencyTreePlugin
:有关可用任务的列表,请参见旧的README。
wn9m85ua4#
如果您想查看库依赖,可以使用
coursier
插件:https://github.com/coursier/coursier/blob/master/doc/FORMER-README.md#printing-trees输出示例:
文本(无颜色):https://gist.github.com/vn971/3086309e5b005576533583915d2fdec4
请注意,该插件与打印树具有完全不同的性质。它是为快速和并发的依赖下载而设计的。但它很好,几乎可以添加到任何项目中,所以我认为值得一提。
cuxqih215#
我尝试使用上面提到的
"net.virtual-void" % "sbt-dependency-graph"
插件,得到了9K行作为输出(有许多空行和重复行),而Maven的mvn dependency:tree
输出中只有180行(在我的项目中每个依赖项只有一行)。因此,我为Maven目标编写了一个sbt Package 器task,这是一个丑陋的黑客,但它有效:q1qsirdb6#
这对我很有效。参考here对于sbt < 1.3用途:
然后