如何将插件作为库添加到我制作的插件中?
Posted
技术标签:
【中文标题】如何将插件作为库添加到我制作的插件中?【英文标题】:How to add a plugin as a library to a plugin I made? 【发布时间】:2019-04-23 09:52:50 【问题描述】:我有一个正在构建的插件,我希望能够覆盖另一个插件的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】:我找到了解决方案!
是添加
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.9")
在build.sbt
中,不在project/plugins.sbt
中。
我猜sbt-assembly
不是一个库,它是一个插件。所以要添加插件,你需要使用addSbtPlugin
。
由于您希望它在代码中,而不是在编译器中,所以您将其放入 build.sbt
,而不是 project/plugins.sbt
。
【讨论】:
以上是关于如何将插件作为库添加到我制作的插件中?的主要内容,如果未能解决你的问题,请参考以下文章