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

Can an SBT plugin embed tasks from another plugin?

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

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

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

override def requires = stejskal.sbt.WebpackPlugin

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