【问题标题】:How can an SBT plugin depend on another pluginSBT插件如何依赖另一个插件
【发布时间】:2013-01-04 16:07:09
【问题描述】:

我想写一个依赖于另一个插件的插件“MyPlugin” ("io.spray" %% "sbt-twirl" % "0.6.0")。

仅仅在 libraryDependencies 中添加 sbt-twirl 是行不通的, 因为插件使用不同的路径方案发布 比标准库。

我也不能将 sbt-twirl 声明为 MyPlugin 的插件依赖项 项目,因为 MyPlugin 不直接使用 sbt-twirl, 使用 MyPlugin 的项目会间接使用它。

MyPlugin 提供了一个在 sbt-twirl 之后运行的任务 已生成它的源代码(在 sourceManaged 中)并在编译后生成。

一个简单但不理想的解决方案是要求项目使用 MyPlugin 也将 sbt-twirl 声明为插件依赖项,但它不是 DRY,因为这两个插件将共享一些设置(目录、版本等), 而且它们必须重复和兼容。

【问题讨论】:

    标签: sbt


    【解决方案1】:

    它应该与使用插件作为插件的定义相同,只是它进入build.sbtproject/Build.scala而不是project/plugins.sbt

    addSbtPlugin("io.spray" % "sbt-twirl" % "0.6.0")
    

    【讨论】:

    • 我做到了:.settings(addSbtPlugin("io.spray" % "sbt-twirl" % "0.6.0")),它奏效了。谢谢
    • 这对我来说出乎意料地难以找到,但解决方案非常简单!
    猜你喜欢
    • 2021-04-09
    • 2015-07-23
    • 2019-07-14
    • 2014-05-27
    • 2012-09-27
    • 2014-12-27
    • 2015-08-23
    • 2013-08-06
    • 2015-04-30
    相关资源
    最近更新 更多