build.sbt (39 lines of code) (raw):

import sbt.Keys.name import sbt.url lazy val PublishingSettings: Seq[Def.Setting[?]] = Seq( organization := "org.jetbrains.scala", // Optional but nice-to-have organizationName := "JetBrains", organizationHomepage := Some(url("https://www.jetbrains.com/")), licenses ++= Seq( ("Apache-2.0", url("https://www.apache.org/licenses/LICENSE-2.0.html")) ), homepage := Some(url("https://github.com/JetBrains/sbt-ide-settings")), // Source-control coordinates scmInfo := Some( ScmInfo( url("https://github.com/JetBrains/sbt-ide-settings"), "git@github.com:JetBrains/sbt-ide-settings.git" ) ), // Required by Sonatype for publishing developers := List( Developer( id = "JetBrains", name = "JetBrains", email = "scala-developers@jetbrains.com", url = url("https://github.com/JetBrains") ) ), ) val root = project.in(file(".")) .settings(PublishingSettings) .settings( sbtPlugin := true, name := "sbt-ide-settings", // cross-build boilerplate, crossSbtVersions := Nil, // handled by explicitly setting sbtVersion via scalaVersion crossScalaVersions := Seq("2.12.18", "2.10.7"), pluginCrossBuild / sbtVersion := { // keep this as low as possible to avoid running into binary incompatibility such as https://github.com/sbt/sbt/issues/5049, scalaBinaryVersion.value match { case "2.10" => "0.13.17" case "2.12" => "1.2.1" } }, )