我想编写一个依赖于另一个插件(“io.spray”%%“sbt-twirl”%“0.6.0”)的插件“MyPlugin”。
简单地在 libraryDependencies 中添加 sbt-twirl 是行不通的,因为插件使用与标准库不同的路径方案发布。
我也不能将 sbt-twirl 声明为 MyPlugin 项目的插件依赖项,因为 MyPlugin 不直接使用 sbt-twirl,而是使用 MyPlugin 的项目将间接使用它。
MyPlugin 提供了一个任务,该任务旨在在 sbt-twirl 生成它的源代码(在 sourceManaged 中)和编译之后运行。
一个简单但不理想的解决方案是要求使用 MyPlugin 的项目也将 sbt-twirl 声明为插件依赖项,但它不是 DRY,因为这两个插件将共享一些设置(目录、版本等),它们将必须重复和兼容。