如何找出导致特定库下载的依赖项?

16 scala sbt

运行我的SBT项目时,控制台输出中有一行:

[info] downloading http://repository/nexus/content/groups/public/org/jboss/netty/netty/3.2.3.Final/netty-3.2.3.Final.jar ...
[info]  [SUCCESSFUL ] org.jboss.netty#netty;3.2.3.Final!netty.jar(bundle) (651ms)
Run Code Online (Sandbox Code Playgroud)

如何找出导致netty.jar下载的项目依赖项?

rom*_*oll 19

这个插件应该能够提供帮助:https://github.com/jrudolph/sbt-dependency-graph/

另一种方法是打开您的完整调试,build.sbt如下所示:

ivyLoggingLevel := UpdateLogging.Full
logLevel := Level.Debug
Run Code Online (Sandbox Code Playgroud)

然后你可以解析输出 sbt update

例如,如果我想知道logback-core我的示例项目的来源,我可以运行

sbt update | grep logback-core
Run Code Online (Sandbox Code Playgroud)

我会得到多条这样的线条,告诉我它附带logback-classic:

[debug] == resolving dependencies ch.qos.logback#logback-classic;1.0.10->ch.qos.logback#logback-core;1.0.10 [compile->master(*)]
Run Code Online (Sandbox Code Playgroud)