對於使用編譯器外掛程式有一些特殊支援。您可以將 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"