Ответ 1
Переопределение зависимостей плагинов происходит так же, как переопределение обычных зависимостей, за исключением того, что конфигурация должна быть введена в project/plugins.sbt
. Переопределяющие зависимости объясняются в Управление библиотекой. Вот резюме:
Если версия, которую вы хотите использовать, больше, чем зависимость, которую вы получите транзитивно, sbt будет использовать большую версию по умолчанию. Вы можете изменить диспетчер конфликтов, чтобы изменить поведение по умолчанию - например, это создаст ошибку в конфликте:
conflictManager := ConflictManager.strict
Другими словами, это в project/plugins.sbt
будет работать:
libraryDependencies += "fi.jumi" % "jumi-launcher" % "0.6.400"
Вы можете проверить свои зависимостей плагина с помощью reload plugins
, а затем show update
. Теперь он должен показать более старую версию как "(EVICTED)".
Если версия, которую вы хотите использовать, ниже, чем стандартная зависимость, тогда вам нужно будет переопределить по-разному. Одним из способов является принудительная зависимость:
libraryDependencies += "fi.jumi" % "jumi-launcher" % "0.4.350" force()
Другой способ - использовать параметр dependencyOverrides
:
dependencyOverrides += "fi.jumi" % "jumi-launcher" % "0.4.350"
Различие между двумя методами заключается в том, что переопределение не приводит к прямой зависимости. Я не думаю, что разница имеет значение для плагинов, но для опубликованных артефактов она имеет некоторые отличия.