Подтвердить что ты не робот

Как увидеть дерево зависимостей в sbt?

Я пытаюсь показать дерево зависимостей 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 не создает дерево?

4b9b3361

Ответ 1

При запуске из командной строки каждый аргумент, отправленный в sbt, должен быть командой, поэтому sbt inspect tree clean будет:

  • запустите команду inspect,
  • затем запустите команду tree,
  • тогда команда clean

Это, очевидно, не выполняется, поскольку inspect требуется аргумент. Это сделает то, что вы хотите:

sbt "inspect tree clean"

Ответ 2

Если вы хотите фактически просмотреть зависимости библиотек (как и с Maven), а не зависимостями задач (что отображается inspect tree), тогда вы захотите использовать sbt-dependency-graph плагин.

Добавьте в свой проект /plugins.sbt(или глобальные plugins.sbt) следующее.

addSbtPlugin("net.virtual-void" % "sbt-dependency-graph" % "0.8.2")

Затем у вас есть доступ к команде dependencyTree и другим.

Ответ 3

Если вы хотите просмотреть зависимостей библиотеки, вы можете использовать плагин coursier: https://github.com/coursier/coursier#printing-trees

Пример вывода: image текст (без цветов): https://gist.github.com/vn971/3086309e5b005576533583915d2fdec4

Обратите внимание, что плагин имеет совершенно другой характер, чем печать деревьев. Он предназначен для быстрой и параллельной загрузки зависимостей. Но это приятно и может быть добавлено практически к любому проекту, поэтому я думаю, что это стоит упомянуть.