diff --git a/build.sbt b/build.sbt index 24f0103cf..336bf8c02 100644 --- a/build.sbt +++ b/build.sbt @@ -767,6 +767,7 @@ lazy val mainProj = (project in file("main")) exclude[DirectMissingMethodProblem]("sbt.plugins.SbtPlugin.requires"), exclude[DirectMissingMethodProblem]("sbt.ResolvedClasspathDependency.apply"), exclude[DirectMissingMethodProblem]("sbt.ClasspathDependency.apply"), + exclude[IncompatibleSignatureProblem]("sbt.plugins.SemanticdbPlugin.globalSettings"), // File -> Source exclude[DirectMissingMethodProblem]("sbt.Defaults.cleanFilesTask"), diff --git a/main/src/main/scala/sbt/plugins/SemanticdbPlugin.scala b/main/src/main/scala/sbt/plugins/SemanticdbPlugin.scala index bb80501dc..c6791b462 100644 --- a/main/src/main/scala/sbt/plugins/SemanticdbPlugin.scala +++ b/main/src/main/scala/sbt/plugins/SemanticdbPlugin.scala @@ -17,18 +17,18 @@ object SemanticdbPlugin extends AutoPlugin { override def requires = JvmPlugin override def trigger = allRequirements - override lazy val globalSettings = Seq( + override lazy val globalSettings: Seq[Def.Setting[_]] = Seq( semanticdbEnabled := false, semanticdbIncludeInJar := false, semanticdbOptions := List("-Yrangepos"), - semanticdbVersion := "4.1.0", + semanticdbVersion := "4.2.3" + ) + + override lazy val projectSettings: Seq[Def.Setting[_]] = Seq( semanticdbCompilerPlugin := { val v = semanticdbVersion.value ("org.scalameta" % "semanticdb-scalac" % v).cross(CrossVersion.full) - } - ) - - override lazy val projectSettings = Seq( + }, allDependencies ++= { val sdb = semanticdbEnabled.value val m = semanticdbCompilerPlugin.value diff --git a/sbt/src/sbt-test/project/semanticdb-version/build.sbt b/sbt/src/sbt-test/project/semanticdb-version/build.sbt new file mode 100644 index 000000000..c447644ca --- /dev/null +++ b/sbt/src/sbt-test/project/semanticdb-version/build.sbt @@ -0,0 +1,18 @@ +ThisBuild / scalaVersion := "2.12.8" +ThisBuild / semanticdbEnabled := true +ThisBuild / semanticdbVersion := "4.2.3" +ThisBuild / semanticdbIncludeInJar := false + +lazy val root = (project in file(".")) + +lazy val check = taskKey[Unit]("Checks the configured semanticdbVersion") + +check := { + val expected = Some("4.2.3") + val actual = allDependencies + .value + .find(_.name == "semanticdb-scalac") + .map(_.revision) + + assert(actual == expected, s"Expected version to be $expected, was $actual") +} diff --git a/sbt/src/sbt-test/project/semanticdb-version/src/main/scala/foo/Test.scala b/sbt/src/sbt-test/project/semanticdb-version/src/main/scala/foo/Test.scala new file mode 100644 index 000000000..0bf6e4111 --- /dev/null +++ b/sbt/src/sbt-test/project/semanticdb-version/src/main/scala/foo/Test.scala @@ -0,0 +1,7 @@ +package foo + +object Test { + def main(args: Array[String]): Unit = { + println("hello world") + } +} diff --git a/sbt/src/sbt-test/project/semanticdb-version/test b/sbt/src/sbt-test/project/semanticdb-version/test new file mode 100644 index 000000000..15675b169 --- /dev/null +++ b/sbt/src/sbt-test/project/semanticdb-version/test @@ -0,0 +1 @@ +> check