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

Как плагин 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, потому что два плагина будут использовать некоторые настройки (каталоги, версии и т.д.), и они должны быть повторены и совместимы.

4b9b3361

Ответ 1

Это должно быть то же определение, что и для использования плагина в качестве плагина, за исключением того, что он находится в build.sbt или project/Build.scala вместо project/plugins.sbt:

addSbtPlugin("io.spray" % "sbt-twirl" % "0.6.0")