Cross building plugins 

Like we are able to cross build against multiple Scala versions, we can cross build sbt 1.0 plugins while staying on sbt 0.13. This is useful because we can port one plugin at a time.

  1. If the plugin depends on libraries, make sure there are Scala 2.12 artifacts for them.
  2. Use the latest sbt 0.13.16.
  3. Append the following settings to your plugin project (and any other subprojects that it depends):
  .settings(
    scalaVersion := "2.12.4",
    sbtVersion in Global := "1.0.4",
    scalaCompilerBridgeSource := {
      val sv = appConfiguration.value.provider.id.version
      ("org.scala-sbt" % "compiler-interface" % sv % "component").sources
    }
  )

Hopefully the last step will be simplified using @jrudolph’s sbt-cross-building in the future. If you run into problems upgrading a plugin, please report to GitHub issue.

Contents

sbt Reference Manual
      1. Cross building plugins