diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index 00724e0..1452510 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -31,6 +31,7 @@ jobs: } cmd: >- sbt " + + Test/compile; set scriptedSbt := \"$MATRIX_SBT\"; set scriptedLaunchOpts += \"-Dscala.version=$MATRIX_SCALA\"; show scriptedSbt; diff --git a/.scalafmt.conf b/.scalafmt.conf index 7db855e..51c55ca 100644 --- a/.scalafmt.conf +++ b/.scalafmt.conf @@ -57,3 +57,5 @@ rewrite { } trailingCommas.style = keep # https://scalameta.org/scalafmt/docs/configuration.html#trailing-commas } + +project.layout = StandardConvention diff --git a/build.sbt b/build.sbt index d1cd679..6923444 100644 --- a/build.sbt +++ b/build.sbt @@ -50,12 +50,32 @@ Global / onLoad := (Global / onLoad).value.andThen { s => s } +crossScalaVersions += "3.7.3" + +scalacOptions --= { + scalaBinaryVersion.value match { + case "3" => + Seq("-Xfatal-warnings") + case _ => + Nil + } +} + +pluginCrossBuild / sbtVersion := { + scalaBinaryVersion.value match { + case "2.12" => + sbtVersion.value + case _ => + "2.0.0-RC5" + } +} + addCommandAlias( "validateCode", List( "scalafmtSbtCheck", - "scalafmtCheckAll", - "javafmtCheckAll", - "headerCheck" + "+ scalafmtCheckAll", + "+ javafmtCheckAll", + "+ headerCheckAll" ).mkString(";") ) diff --git a/src/main/scala-2/com/github/sbt/maven/SbtMavenPluginCompat.scala b/src/main/scala-2/com/github/sbt/maven/SbtMavenPluginCompat.scala new file mode 100644 index 0000000..cb721f4 --- /dev/null +++ b/src/main/scala-2/com/github/sbt/maven/SbtMavenPluginCompat.scala @@ -0,0 +1,21 @@ +/* + * Copyright (C) from 2023 The sbt contributors + */ + +package com.github.sbt.maven + +import java.io.File + +import sbt.Classpaths +import sbt.Configuration +import sbt.Keys.Classpath +import sbt.UpdateReport + +private[maven] object SbtMavenPluginCompat { + def managedJars( + config: Configuration, + jarTypes: Set[String], + up: UpdateReport + ): Seq[File] = + Classpaths.managedJars(config, jarTypes, up).map(_.data) +} diff --git a/src/main/scala-3/com/github/sbt/maven/SbtMavenPluginCompat.scala b/src/main/scala-3/com/github/sbt/maven/SbtMavenPluginCompat.scala new file mode 100644 index 0000000..d486ae3 --- /dev/null +++ b/src/main/scala-3/com/github/sbt/maven/SbtMavenPluginCompat.scala @@ -0,0 +1,24 @@ +/* + * Copyright (C) from 2023 The sbt contributors + */ + +package com.github.sbt.maven + +import java.io.File + +import sbt.Classpaths +import sbt.Configuration +import sbt.Keys.fileConverter +import sbt.Keys.Classpath +import sbt.UpdateReport + +private[maven] object SbtMavenPluginCompat { + inline def managedJars( + config: Configuration, + jarTypes: Set[String], + up: UpdateReport + ): Seq[File] = { + val converter = fileConverter.value + Classpaths.managedJars(config, jarTypes, up, converter).map(x => converter.toPath(x.data).toFile) + } +} diff --git a/src/main/scala/com/github/sbt/maven/SbtMavenPlugin.scala b/src/main/scala/com/github/sbt/maven/SbtMavenPlugin.scala index a7b2c7e..82da55d 100644 --- a/src/main/scala/com/github/sbt/maven/SbtMavenPlugin.scala +++ b/src/main/scala/com/github/sbt/maven/SbtMavenPlugin.scala @@ -40,7 +40,8 @@ object SbtMavenPlugin extends AutoPlugin { val mavenVersion = settingKey[String]("Maven version") val mavenPluginToolsVersion = settingKey[String]("Maven Plugin Tools version") - val MavenConf = Configurations.config("scripted-maven").hide + val MavenConf = Configurations.config("scripted-maven").hide + @transient val mavenClasspath = taskKey[PathFinder]("") val mavenLaunchOpts = settingKey[Seq[String]]("options to pass to jvm launching Maven tasks") @@ -66,7 +67,7 @@ object SbtMavenPlugin extends AutoPlugin { private def scriptedMavenSettings: Seq[Setting[?]] = Seq( ivyConfigurations += MavenConf, mavenClasspath := Def.task { - PathFinder(Classpaths.managedJars(MavenConf, classpathTypes.value, Keys.update.value).map(_.data)) + PathFinder(SbtMavenPluginCompat.managedJars(MavenConf, classpathTypes.value, Keys.update.value)) }.value, scripted / sourceDirectory := sourceDirectory.value / "maven-test", scripted := scriptedTask.evaluated,