4

我有一个 sbt 插件,当启用它时,它会通过 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 添加的。

4

1 回答 1

0

请参阅编译器插件支持

autoCompilerPlugins := true

libraryDependencies +=
    compilerPlugin("org.scala-lang.plugins" % "continuations" % scalaVersion.value)

scalacOptions += "-P:continuations:enable"

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

于 2014-07-29T16:42:58.963 回答