Как узнать, какая зависимость вызвала загрузку конкретной библиотеки?

При запуске моего проекта 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)

Как узнать, какая зависимость проекта вызвала загрузку netty.jar?

Ответы

Ответ 1

Этот плагин должен быть в состоянии помочь: https://github.com/jrudolph/sbt-dependency-graph/

Другим способом было бы включить полный отладочный файл в build.sbt следующим образом:

ivyLoggingLevel := UpdateLogging.Full
logLevel := Level.Debug

а затем вы можете проанализировать вывод sbt update

Например, если бы я хотел знать, откуда logback-core появляется в моем примере проекта, я мог бы запустить

sbt update | grep logback-core

И я бы получил несколько таких строк, сказав, что он поставляется с logback-classic:

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