如何将插件作为库添加到我制作的插件中?

时间:2018-11-20 21:21:39

标签: scala sbt sbt-assembly sbt-plugin

我有一个正在构建的插件,我希望能够覆盖另一个插件的setting,例如sbt-assembly

我希望在我的AutoPlugin中能够做到:

import sbtassembly

[...]

override def projectSettings: Seq[Def.Setting[_]] = {
  Seq(
    assembly := { /* override the task */ }
  )
}

我尝试添加./build.sbt

libraryDependencies += "com.eed3si9n" % "sbt-assembly" % "0.14.9"

但我知道

(update) sbt.librarymanagement.ResolveException: unresolved dependency: com.eed3si9n#sbt-assembly;0.14.9: not found

我尝试将其添加到./project/plugins.sbt中,但是如果我理解正确,那会把它添加为构建工具来构建我的插件,而不是将其添加到插件代码中,这似乎是正确的,因为我无法访问sbtassembly软件包。

任何提示?

谢谢!

1 个答案:

答案 0 :(得分:2)

我找到了解决方案!

要添加

addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.9")
build.sbt中的

不在project/plugins.sbt中。

我猜sbt-assembly不是一个库,而是一个插件。因此,要添加插件,您需要使用addSbtPlugin

由于要在代码中而不是编译器中使用它,因此将其放在build.sbt中,而不是project/plugins.sbt中。