Как плагин SBT зависит от другого плагина
Я хочу написать плагин "MyPlugin", который зависит от другого плагина
( "io.spray" %% "sbt-twirl" % "0.6.0" ).
Просто добавление sbt-twirl в libraryDependencies не будет работать,
потому что плагины публикуются с другой схемой маршрута
чем стандартные библиотеки.
Я также не могу объявить sbt-twirl как зависимость плагина к MyPlugin
проект, потому что MyPlugin не использует sbt-twirl напрямую,
это проект с использованием MyPlugin, который косвенно его использует.
MyPlugin предоставляет задачу, предназначенную для запуска после sbt-twirl
сгенерировал источники (в sourceManaged) и после компиляции.
Простым, но не идеальным решением было бы потребовать использования проекта
MyPlugin также объявляет sbt-twirl как зависимость плагина, но это не
DRY, потому что два плагина будут использовать некоторые настройки (каталоги, версии и т.д.),
и они должны быть повторены и совместимы.
Ответы
Ответ 1
Это должно быть то же определение, что и для использования плагина в качестве плагина, за исключением того, что он находится в build.sbt
или project/Build.scala
вместо project/plugins.sbt
:
addSbtPlugin("io.spray" % "sbt-twirl" % "0.6.0")