SBT插件如何依赖于另一个插件

时间:2013-01-21 15:04:38

标签: sbt

我想写一个依赖于另一个插件的插件“MyPlugin” (“io.spray”%%“sbt-twirl”%“0.6.0”)。

在libraryDependencies中简单地添加sbt-twirl是行不通的, 因为插件使用不同的路径方案发布 比标准库。

我也不能将sbt-twirl声明为对MyPlugin的插件依赖 项目,因为MyPlugin不直接使用sbt-twirl, 使用MyPlugin的项目将间接使用它。

MyPlugin提供了一个在sbt-twirl之后运行的任务 已生成它的源(在sourceManaged中)和编译后。

一个简单但非理想的解决方案是要求项目使用 MyPlugin也将sbt-twirl声明为插件依赖,但事实并非如此 DRY,因为这两个插件将共享一些设置(目录,版本等), 它们必须重复和兼容。

1 个答案:

答案 0 :(得分:27)

它应该与使用插件作为插件的定义相同,除了它是build.sbtproject/Build.scala而不是project/plugins.sbt

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