Fix #7285: use legacy Maven style on publishLocal

This commit is contained in:
Adrien Piquerez 2023-06-05 11:51:34 +02:00
parent ca09ee96fd
commit dd00e143f2
3 changed files with 29 additions and 7 deletions

View File

@ -2835,14 +2835,21 @@ object Classpaths {
)
)
private val publishSbtPluginMavenStyle = Def.task {
sbtPlugin.value && publishMavenStyle.value
}
private lazy val publishSbtPluginMavenStyle = Def.task(sbtPlugin.value && publishMavenStyle.value)
private lazy val packagedDefaultArtifacts = packaged(defaultArtifactTasks)
private lazy val emptyArtifacts = Def.task(Map.empty[Artifact, File])
val jvmPublishSettings: Seq[Setting[_]] = Seq(
artifacts := artifactDefs(defaultArtifactTasks).value,
packagedArtifacts := Def
.ifS(publishSbtPluginMavenStyle)(mavenArtifactsOfSbtPlugin)(packaged(defaultArtifactTasks))
.ifS(publishSbtPluginMavenStyle)(mavenArtifactsOfSbtPlugin)(packagedDefaultArtifacts)
.value,
// publishLocal needs legacy artifacts (see https://github.com/sbt/sbt/issues/7285)
publishLocal / packagedArtifacts ++= {
if (sbtPlugin.value && !sbtPluginPublishLegacyMavenStyle.value) {
packagedDefaultArtifacts.value
} else Map.empty[Artifact, File]
}
) ++ RemoteCache.projectSettings
/**
@ -2867,9 +2874,7 @@ object Classpaths {
}
val packages = legacyPackages.map { case (artifact, file) => copyArtifact(artifact, file) }
val legacyPackagedArtifacts = Def
.ifS(sbtPluginPublishLegacyMavenStyle.toTask)(packaged(defaultArtifactTasks))(
Def.task(Map.empty[Artifact, File])
)
.ifS(sbtPluginPublishLegacyMavenStyle.toTask)(packagedDefaultArtifacts)(emptyArtifacts)
.value
packages + (addSuffix(legacyArtifact) -> pom) ++ legacyPackagedArtifacts
}

View File

@ -73,6 +73,18 @@ lazy val testMaven2 = project.in(file("test-maven-2"))
).value
)
lazy val testLocal2 = project.in(file("test-local-2"))
.settings(
addSbtPlugin("org.example" % "sbt-plugin-2" % "0.1.0-SNAPSHOT"),
checkUpdate := checkUpdateDef(
"sbt-plugin-2.jar", // resolved from local repository
"sbt-plugin-example-diamond_2.12_1.0-0.5.0.jar",
"sbt-plugin-example-left_2.12_1.0-0.3.0.jar",
"sbt-plugin-example-right_2.12_1.0-0.3.0.jar",
"sbt-plugin-example-bottom_2.12_1.0-0.3.0.jar",
).value
)
lazy val checkPackagedArtifacts = taskKey[Unit]("check the packaged artifacts")
lazy val checkPublish = taskKey[Unit]("check publish")
lazy val checkUpdate = taskKey[Unit]("check update")

View File

@ -17,3 +17,8 @@
> testMaven2 / checkUpdate
> set testMaven2 / useCoursier := false
> testMaven2 / checkUpdate
> sbtPlugin2 / publishLocal
> testLocal2 / checkUpdate
> set testLocal2 / useCoursier := false
> testLocal2 / checkUpdate