SBT 插件可以嵌入来自另一个插件的任务吗?

Posted

技术标签:

【中文标题】SBT 插件可以嵌入来自另一个插件的任务吗?【英文标题】:Can an SBT plugin embed tasks from another plugin? 【发布时间】:2020-10-06 05:23:13 【问题描述】:

我创建了一个插件,可以生成一些需要使用sbt-webpack 插件编译的网络资源。理想情况下,我的插件只有一个任务bundle,它将generate 一些资源,然后它将它们与来自sbt-webpack 插件的webpack 任务捆绑在一起。

将来自不同插件的任务合并到定义插件中任务的代码中的正确方法是什么?

【问题讨论】:

【参考方案1】:

声明对另一个插件的依赖就足够了。您需要将此行添加到您的自动插件中:

override def requires = stejskal.sbt.WebpackPlugin

这将确保 sbt-webpack 在您的插件启用时启用,并且其设置将在您在插件中定义的设置之前加载。此外,任何 sbt-webpack 添加到其autoImport 对象的键也将可供您插件的用户使用。

【讨论】:

以上是关于SBT 插件可以嵌入来自另一个插件的任务吗?的主要内容,如果未能解决你的问题,请参考以下文章

一个 sbt 插件如何设置另一个插件的设置然后调用另一个插件

在另一个 SBT 插件中显式启用 SBT 插件

使 SBT 子项目任务依赖于另一个子项目任务

使用 SBT 如何在运行测试之前对插件中的任务进行排序

SBT插件——编译前执行自定义任务

Sbt 插件在 bintray 上的发布和解析,不同的路径(sbt-bintray 插件)