对使用编译器插件有一些特殊支持。您可以将 autoCompilerPlugins
设置为 true
以启用此功能。
autoCompilerPlugins := true
要使用编译器插件,您可以将其放在您的非托管库目录(默认情况下为 lib/
)中,或者将其作为托管依赖项添加到 plugin
配置中。addCompilerPlugin
是一个方便的方法,用于指定 plugin
作为依赖项的配置。
addCompilerPlugin("org.scala-tools.sxr" %% "sxr" % "0.3.0")
compile
和 testCompile
操作将使用在 lib
目录或 plugin
配置中找到的任何编译器插件。您负责根据需要配置插件。例如,Scala X-Ray 需要额外的选项
// declare the main Scala source directory as the base directory
scalacOptions :=
scalacOptions.value :+ ("-Psxr:base-directory:" + (Compile / scalaSource).value.getAbsolutePath)
您仍然可以手动指定编译器插件。例如
scalacOptions += "-Xplugin:<path-to-sxr>/sxr-0.3.0.jar"
Scala 2.12 中对延续的支持是作为编译器插件实现的。您可以使用编译器插件支持来实现此功能,如下所示。
val continuationsVersion = "1.0.3"
autoCompilerPlugins := true
addCompilerPlugin("org.scala-lang.plugins" % "scala-continuations-plugin_2.12.2" % continuationsVersion)
libraryDependencies += "org.scala-lang.plugins" %% "scala-continuations-library" % continuationsVersion
scalacOptions += "-P:continuations:enable"
添加特定版本编译器插件可以按如下方式完成
val continuationsVersion = "1.0.3"
autoCompilerPlugins := true
libraryDependencies +=
compilerPlugin("org.scala-lang.plugins" % ("scala-continuations-plugin_" + scalaVersion.value) % continuationsVersion)
libraryDependencies += "org.scala-lang.plugins" %% "scala-continuations-library" % continuationsVersion
scalacOptions += "-P:continuations:enable"