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

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

【讨论】:

以上是关于如何将插件作为库添加到我制作的插件中?的主要内容,如果未能解决你的问题,请参考以下文章

如何将任务依赖项从另一个插件添加到我的 SBT 插件?

如何在 sbt 项目中使用 sbt 插件作为库依赖项?

如何向 Visual Studio 项目添加其他库?

phonegap 的 Juce 库插件

如何手动将 .xcframework 添加到 Flutter iOS 插件?

如何将第三方 SDK 正确添加到 Cordova 插件?