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