Sbt Plugin 添加依赖到 project/build.sbt

标签 sbt sbt-plugin

我有一个 sbt-plugin,当启用时,它会通过 scalac 选项添加一个 scalac 编译器插件。一切都很好。

但是,如果 scalac 编译器插件本身有一个需要使用的依赖项,我就无法让它工作。我试过了:

  • 将依赖添加到目标项目 libraryDependencies
  • 将其指定为 sbt-plugin 本身的依赖项。

  • 我认为我需要做的是(它是一个自动插件):
    override lazy val projectSettings = Seq(
      ...
      projectsPluginsDependencies ++= Seq(
        "com.typesafe" % "config" % "1.2.1" % Compile.name
      )
      ...
    )
    

    如果 projectsPluginsDependencies 是一个有效的键。这可能吗?

    (事实上​​,我什至不确定如何将依赖项手动添加到最终项目中。如果编译器插件需要依赖项 X,您如何满足它?我尝试将其添加到 project/build.sbt 中,但没有工作)。

    只是要非常清楚 - 我不是在问如何添加 sbt-plugin 需要的依赖项。我在问如何添加编译器插件需要的依赖项,它本身是由 sbt-plugin 添加的。

    最佳答案

    Compiler Plugin Support .

    autoCompilerPlugins := true
    
    libraryDependencies +=
        compilerPlugin("org.scala-lang.plugins" % "continuations" % scalaVersion.value)
    
    scalacOptions += "-P:continuations:enable"
    

    尝试看看这是否会引入传递依赖。

    关于Sbt Plugin 添加依赖到 project/build.sbt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24972955/

    相关文章:

    scala - SBT 未解决 Squeryl 依赖关系

    SBT错误: "Failed to construct terminal; falling back to unsupported..."

    intellij-idea - 没有本地发布的 Intellij Idea 中的共享 SBT 模块

    scala - 如何使 SBT 任务依赖于同一 SBT 项目中定义的模块?

    SBT 子项目无法识别插件命令

    scala - 如何添加SBT解析器(服务器端)

    scala - 项目中的依赖项不可用

    sbt - sbt 中多个测试包的多个 jar

    scala - sbt 程序集合并问题 [去重 : different file contents found in the following]

    scala - 在 IntelliJ IDEA 中找不到 SBT-shell