diff --git a/README.md b/README.md
index 43d57fe9edaa..0a0c91808398 100644
--- a/README.md
+++ b/README.md
@@ -94,7 +94,7 @@ Consult the [Dependency Metadata] section of the [User Guide] for a list of all
of the JUnit Platform, JUnit Jupiter, and JUnit Vintage.
See also for releases and
- for snapshots.
+ for snapshots.
[Codecov]: https://codecov.io/gh/junit-team/junit5
diff --git a/build.gradle.kts b/build.gradle.kts
index cd79a120700b..5f40357a56cf 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -1,10 +1,12 @@
+import junitbuild.extensions.dependencyProject
+
plugins {
- alias(libs.plugins.nexusPublish)
id("junitbuild.base-conventions")
id("junitbuild.build-metadata")
id("junitbuild.checkstyle-nohttp")
id("junitbuild.dependency-update-check")
id("junitbuild.jacoco-aggregation-conventions")
+ id("junitbuild.maven-central-publishing")
id("junitbuild.temp-maven-repo")
}
@@ -55,10 +57,3 @@ dependencies {
jacocoAggregation(projects.jupiterTests)
jacocoAggregation(projects.platformTests)
}
-
-nexusPublishing {
- packageGroup = "org.junit"
- repositories {
- sonatype()
- }
-}
diff --git a/documentation/documentation.gradle.kts b/documentation/documentation.gradle.kts
index 799c16ae3833..61be1e588318 100644
--- a/documentation/documentation.gradle.kts
+++ b/documentation/documentation.gradle.kts
@@ -2,10 +2,14 @@ import junitbuild.exec.CaptureJavaExecOutput
import junitbuild.exec.ClasspathSystemPropertyProvider
import junitbuild.exec.GenerateStandaloneConsoleLauncherShadowedArtifactsFile
import junitbuild.exec.RunConsoleLauncher
+import junitbuild.extensions.dependencyProject
+import junitbuild.extensions.isSnapshot
+import junitbuild.extensions.javaModuleName
import junitbuild.javadoc.ModuleSpecificJavadocFileOption
import org.asciidoctor.gradle.base.AsciidoctorAttributeProvider
import org.asciidoctor.gradle.jvm.AbstractAsciidoctorTask
import org.gradle.api.tasks.PathSensitivity.RELATIVE
+import org.ysb33r.grolifant.api.core.jvm.ExecutionMode.JAVA_EXEC
plugins {
alias(libs.plugins.asciidoctorConvert)
@@ -377,6 +381,7 @@ tasks {
}
asciidoctorPdf {
+ setExecutionMode(JAVA_EXEC) // Avoid classpath conflicts with other Gradle plugins (e.g. JReleaser)
sources {
include("user-guide/index.adoc")
}
diff --git a/documentation/src/docs/asciidoc/link-attributes.adoc b/documentation/src/docs/asciidoc/link-attributes.adoc
index fbfc2021e938..2342763e5680 100644
--- a/documentation/src/docs/asciidoc/link-attributes.adoc
+++ b/documentation/src/docs/asciidoc/link-attributes.adoc
@@ -3,7 +3,7 @@ ifdef::backend-pdf[]
:javadoc-root: https://junit.org/junit5/docs/{docs-version}/api
endif::[]
// Snapshot Repository
-:snapshot-repo: https://oss.sonatype.org/content/repositories/snapshots
+:snapshot-repo: https://central.sonatype.com/repository/maven-snapshots
// Base Links
:junit-team: https://github.com/junit-team
:junit5-repo: {junit-team}/junit5
diff --git a/gradle/base/code-generator-model/build.gradle.kts b/gradle/base/code-generator-model/build.gradle.kts
index aa3ba93c438a..bc0172f0f072 100644
--- a/gradle/base/code-generator-model/build.gradle.kts
+++ b/gradle/base/code-generator-model/build.gradle.kts
@@ -1,9 +1,3 @@
plugins {
`kotlin-dsl`
}
-
-group = "junitbuild.base"
-
-repositories {
- gradlePluginPortal()
-}
diff --git a/gradle/base/dsl-extensions/build.gradle.kts b/gradle/base/dsl-extensions/build.gradle.kts
new file mode 100644
index 000000000000..bc0172f0f072
--- /dev/null
+++ b/gradle/base/dsl-extensions/build.gradle.kts
@@ -0,0 +1,3 @@
+plugins {
+ `kotlin-dsl`
+}
diff --git a/gradle/base/dsl-extensions/src/main/kotlin/junitbuild/extensions/DependencyExtensions.kt b/gradle/base/dsl-extensions/src/main/kotlin/junitbuild/extensions/DependencyExtensions.kt
new file mode 100644
index 000000000000..ad04bf5f33ab
--- /dev/null
+++ b/gradle/base/dsl-extensions/src/main/kotlin/junitbuild/extensions/DependencyExtensions.kt
@@ -0,0 +1,8 @@
+package junitbuild.extensions
+
+import org.gradle.api.provider.Provider
+import org.gradle.plugin.use.PluginDependency
+
+// see https://docs.gradle.org/current/userguide/plugins.html#sec:plugin_markers
+val Provider.markerCoordinates: Provider
+ get() = map { "${it.pluginId}:${it.pluginId}.gradle.plugin:${it.version}" }
diff --git a/gradle/plugins/common/src/main/kotlin/ProjectExtensions.kt b/gradle/base/dsl-extensions/src/main/kotlin/junitbuild/extensions/ProjectExtensions.kt
similarity index 96%
rename from gradle/plugins/common/src/main/kotlin/ProjectExtensions.kt
rename to gradle/base/dsl-extensions/src/main/kotlin/junitbuild/extensions/ProjectExtensions.kt
index 33c7a591b546..8dc61fa656de 100644
--- a/gradle/plugins/common/src/main/kotlin/ProjectExtensions.kt
+++ b/gradle/base/dsl-extensions/src/main/kotlin/junitbuild/extensions/ProjectExtensions.kt
@@ -1,3 +1,5 @@
+package junitbuild.extensions
+
import org.gradle.api.Project
import org.gradle.api.artifacts.ProjectDependency
import org.gradle.api.artifacts.VersionCatalog
diff --git a/gradle/plugins/common/src/main/kotlin/junitbuild/extensions/Extensions.kt b/gradle/base/dsl-extensions/src/main/kotlin/junitbuild/extensions/StringExtensions.kt
similarity index 100%
rename from gradle/plugins/common/src/main/kotlin/junitbuild/extensions/Extensions.kt
rename to gradle/base/dsl-extensions/src/main/kotlin/junitbuild/extensions/StringExtensions.kt
diff --git a/gradle/plugins/common/src/main/kotlin/TaskExtensions.kt b/gradle/base/dsl-extensions/src/main/kotlin/junitbuild/extensions/TaskExtensions.kt
similarity index 85%
rename from gradle/plugins/common/src/main/kotlin/TaskExtensions.kt
rename to gradle/base/dsl-extensions/src/main/kotlin/junitbuild/extensions/TaskExtensions.kt
index 7ad4e7ab46cb..9cd596dfbfda 100644
--- a/gradle/plugins/common/src/main/kotlin/TaskExtensions.kt
+++ b/gradle/base/dsl-extensions/src/main/kotlin/junitbuild/extensions/TaskExtensions.kt
@@ -1,3 +1,5 @@
+package junitbuild.extensions
+
import org.gradle.api.Task
import org.gradle.internal.os.OperatingSystem
diff --git a/gradle/plugins/common/src/main/kotlin/VersionExtensions.kt b/gradle/base/dsl-extensions/src/main/kotlin/junitbuild/extensions/VersionExtensions.kt
similarity index 67%
rename from gradle/plugins/common/src/main/kotlin/VersionExtensions.kt
rename to gradle/base/dsl-extensions/src/main/kotlin/junitbuild/extensions/VersionExtensions.kt
index 8d106218b896..0991e5d1c3fd 100644
--- a/gradle/plugins/common/src/main/kotlin/VersionExtensions.kt
+++ b/gradle/base/dsl-extensions/src/main/kotlin/junitbuild/extensions/VersionExtensions.kt
@@ -1 +1,3 @@
+package junitbuild.extensions
+
fun Any.isSnapshot(): Boolean = toString().contains("SNAPSHOT")
diff --git a/gradle/base/dsl-extensions/src/main/kotlin/junitbuild/extensions/junitbuild.dsl-extensions.gradle.kts b/gradle/base/dsl-extensions/src/main/kotlin/junitbuild/extensions/junitbuild.dsl-extensions.gradle.kts
new file mode 100644
index 000000000000..11b39c463b79
--- /dev/null
+++ b/gradle/base/dsl-extensions/src/main/kotlin/junitbuild/extensions/junitbuild.dsl-extensions.gradle.kts
@@ -0,0 +1 @@
+// Just a dummy plugin to get the extensions on the classpath of downstream builds
diff --git a/gradle/base/gradle.properties b/gradle/base/gradle.properties
new file mode 100644
index 000000000000..de911ccbf7bf
--- /dev/null
+++ b/gradle/base/gradle.properties
@@ -0,0 +1 @@
+group = junitbuild.base
diff --git a/gradle/base/settings.gradle.kts b/gradle/base/settings.gradle.kts
index 66f6697452eb..67d0cdacc360 100644
--- a/gradle/base/settings.gradle.kts
+++ b/gradle/base/settings.gradle.kts
@@ -1,3 +1,10 @@
rootProject.name = "base"
+dependencyResolutionManagement {
+ repositories {
+ gradlePluginPortal()
+ }
+}
+
include("code-generator-model")
+include("dsl-extensions")
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index 21d105473db1..43b1b86dd487 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -98,9 +98,9 @@ develocity = { id = "com.gradle.develocity", version = "4.0" }
foojayResolver = { id = "org.gradle.toolchains.foojay-resolver", version = "0.10.0" }
gitPublish = { id = "org.ajoberstar.git-publish", version = "5.1.1" }
jmh = { id = "me.champeau.jmh", version = "0.7.3" }
+jreleaser = { id = "org.jreleaser", version = "1.17.0" }
# check if workaround in gradle.properties can be removed when updating
kotlin = { id = "org.jetbrains.kotlin.jvm", version = "2.1.20" }
-nexusPublish = { id = "io.github.gradle-nexus.publish-plugin", version = "2.0.0" }
plantuml = { id = "io.freefair.plantuml", version = "8.13.1" }
shadow = { id = "com.gradleup.shadow", version = "8.3.6" }
spotless = { id = "com.diffplug.spotless", version = "6.25.0" }
diff --git a/gradle/plugins/code-generator/build.gradle.kts b/gradle/plugins/code-generator/build.gradle.kts
index e9f2ef657e47..fda16a028335 100644
--- a/gradle/plugins/code-generator/build.gradle.kts
+++ b/gradle/plugins/code-generator/build.gradle.kts
@@ -4,6 +4,7 @@ plugins {
dependencies {
implementation("junitbuild.base:code-generator-model")
+ implementation("junitbuild.base:dsl-extensions")
implementation(projects.common)
implementation(libs.jackson.dataformat.yaml)
implementation(libs.jackson.module.kotlin)
diff --git a/gradle/plugins/code-generator/src/main/kotlin/junitbuild.code-generator.gradle.kts b/gradle/plugins/code-generator/src/main/kotlin/junitbuild.code-generator.gradle.kts
index 59d9fa36ff43..1846eb6ae728 100644
--- a/gradle/plugins/code-generator/src/main/kotlin/junitbuild.code-generator.gradle.kts
+++ b/gradle/plugins/code-generator/src/main/kotlin/junitbuild.code-generator.gradle.kts
@@ -1,3 +1,4 @@
+import junitbuild.extensions.dependencyFromLibs
import junitbuild.generator.GenerateJreRelatedSourceCode
plugins {
diff --git a/gradle/plugins/common/build.gradle.kts b/gradle/plugins/common/build.gradle.kts
index 48c05c7f0a80..e15665d0d6e0 100644
--- a/gradle/plugins/common/build.gradle.kts
+++ b/gradle/plugins/common/build.gradle.kts
@@ -1,8 +1,11 @@
+import junitbuild.extensions.markerCoordinates
+
plugins {
`kotlin-dsl`
}
dependencies {
+ implementation("junitbuild.base:dsl-extensions")
implementation(projects.buildParameters)
implementation(libs.plugins.kotlin.markerCoordinates)
implementation(libs.plugins.bnd.markerCoordinates)
@@ -10,11 +13,8 @@ dependencies {
implementation(libs.plugins.develocity.markerCoordinates)
implementation(libs.plugins.foojayResolver.markerCoordinates)
implementation(libs.plugins.jmh.markerCoordinates)
+ implementation(libs.plugins.jreleaser.markerCoordinates)
implementation(libs.plugins.shadow.markerCoordinates)
implementation(libs.plugins.spotless.markerCoordinates)
implementation(libs.plugins.versions.markerCoordinates)
}
-
-// see https://docs.gradle.org/current/userguide/plugins.html#sec:plugin_markers
-val Provider.markerCoordinates: Provider
- get() = map { "${it.pluginId}:${it.pluginId}.gradle.plugin:${it.version}" }
diff --git a/gradle/plugins/common/src/main/kotlin/junitbuild.checkstyle-conventions.gradle.kts b/gradle/plugins/common/src/main/kotlin/junitbuild.checkstyle-conventions.gradle.kts
index ae6f47ef34d7..f207138111fe 100644
--- a/gradle/plugins/common/src/main/kotlin/junitbuild.checkstyle-conventions.gradle.kts
+++ b/gradle/plugins/common/src/main/kotlin/junitbuild.checkstyle-conventions.gradle.kts
@@ -1,3 +1,5 @@
+import junitbuild.extensions.requiredVersionFromLibs
+
plugins {
base
checkstyle
diff --git a/gradle/plugins/common/src/main/kotlin/junitbuild.checkstyle-nohttp.gradle.kts b/gradle/plugins/common/src/main/kotlin/junitbuild.checkstyle-nohttp.gradle.kts
index 641002f94ad2..0bcb0ce67641 100644
--- a/gradle/plugins/common/src/main/kotlin/junitbuild.checkstyle-nohttp.gradle.kts
+++ b/gradle/plugins/common/src/main/kotlin/junitbuild.checkstyle-nohttp.gradle.kts
@@ -1,3 +1,6 @@
+import junitbuild.extensions.dependencyFromLibs
+import junitbuild.extensions.requiredVersionFromLibs
+
plugins {
id("junitbuild.checkstyle-conventions")
}
diff --git a/gradle/plugins/common/src/main/kotlin/junitbuild.jacoco-conventions.gradle.kts b/gradle/plugins/common/src/main/kotlin/junitbuild.jacoco-conventions.gradle.kts
index ef29df71f8c0..eb2965a09a5a 100644
--- a/gradle/plugins/common/src/main/kotlin/junitbuild.jacoco-conventions.gradle.kts
+++ b/gradle/plugins/common/src/main/kotlin/junitbuild.jacoco-conventions.gradle.kts
@@ -1,3 +1,5 @@
+import junitbuild.extensions.requiredVersionFromLibs
+
plugins {
jacoco
id("junitbuild.build-parameters")
diff --git a/gradle/plugins/common/src/main/kotlin/junitbuild.java-library-conventions.gradle.kts b/gradle/plugins/common/src/main/kotlin/junitbuild.java-library-conventions.gradle.kts
index b14973e05474..a87df3780b8c 100644
--- a/gradle/plugins/common/src/main/kotlin/junitbuild.java-library-conventions.gradle.kts
+++ b/gradle/plugins/common/src/main/kotlin/junitbuild.java-library-conventions.gradle.kts
@@ -1,4 +1,6 @@
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
+import junitbuild.extensions.javaModuleName
+import junitbuild.extensions.isSnapshot
import junitbuild.java.ModuleCompileOptions
import junitbuild.java.ModulePathArgumentProvider
import junitbuild.java.PatchModuleArgumentProvider
diff --git a/gradle/plugins/common/src/main/kotlin/junitbuild.jmh-conventions.gradle.kts b/gradle/plugins/common/src/main/kotlin/junitbuild.jmh-conventions.gradle.kts
index a1d529652650..377a49fb9085 100644
--- a/gradle/plugins/common/src/main/kotlin/junitbuild.jmh-conventions.gradle.kts
+++ b/gradle/plugins/common/src/main/kotlin/junitbuild.jmh-conventions.gradle.kts
@@ -1,3 +1,6 @@
+import junitbuild.extensions.requiredVersionFromLibs
+import junitbuild.extensions.dependencyFromLibs
+
plugins {
id("me.champeau.jmh")
}
diff --git a/gradle/plugins/common/src/main/kotlin/junitbuild.junit4-compatibility.gradle.kts b/gradle/plugins/common/src/main/kotlin/junitbuild.junit4-compatibility.gradle.kts
index 64b1074d345d..1366ce3159dc 100644
--- a/gradle/plugins/common/src/main/kotlin/junitbuild.junit4-compatibility.gradle.kts
+++ b/gradle/plugins/common/src/main/kotlin/junitbuild.junit4-compatibility.gradle.kts
@@ -1,3 +1,5 @@
+import junitbuild.extensions.dependencyFromLibs
+
plugins {
`java-library`
}
diff --git a/gradle/plugins/common/src/main/kotlin/junitbuild.publishing-conventions.gradle.kts b/gradle/plugins/common/src/main/kotlin/junitbuild.publishing-conventions.gradle.kts
index 90146181e380..08664ee9a0d0 100644
--- a/gradle/plugins/common/src/main/kotlin/junitbuild.publishing-conventions.gradle.kts
+++ b/gradle/plugins/common/src/main/kotlin/junitbuild.publishing-conventions.gradle.kts
@@ -1,3 +1,5 @@
+import junitbuild.extensions.isSnapshot
+
plugins {
`maven-publish`
signing
diff --git a/gradle/plugins/common/src/main/kotlin/junitbuild.spotless-conventions.gradle.kts b/gradle/plugins/common/src/main/kotlin/junitbuild.spotless-conventions.gradle.kts
index 12a1d64470b0..d5c352adc80c 100644
--- a/gradle/plugins/common/src/main/kotlin/junitbuild.spotless-conventions.gradle.kts
+++ b/gradle/plugins/common/src/main/kotlin/junitbuild.spotless-conventions.gradle.kts
@@ -1,3 +1,5 @@
+import junitbuild.extensions.requiredVersionFromLibs
+
plugins {
id("com.diffplug.spotless")
}
diff --git a/gradle/plugins/common/src/main/kotlin/junitbuild.testing-conventions.gradle.kts b/gradle/plugins/common/src/main/kotlin/junitbuild.testing-conventions.gradle.kts
index b5f63a5906a5..b79be1dbbeed 100644
--- a/gradle/plugins/common/src/main/kotlin/junitbuild.testing-conventions.gradle.kts
+++ b/gradle/plugins/common/src/main/kotlin/junitbuild.testing-conventions.gradle.kts
@@ -1,6 +1,8 @@
-
import com.gradle.develocity.agent.gradle.internal.test.PredictiveTestSelectionConfigurationInternal
import com.gradle.develocity.agent.gradle.test.PredictiveTestSelectionMode
+import junitbuild.extensions.trackOperationSystemAsInput
+import junitbuild.extensions.dependencyFromLibs
+import junitbuild.extensions.bundleFromLibs
import org.gradle.api.tasks.PathSensitivity.RELATIVE
import org.gradle.api.tasks.testing.logging.TestExceptionFormat.FULL
import org.gradle.api.tasks.testing.logging.TestLogEvent.FAILED
diff --git a/gradle/plugins/common/src/main/kotlin/junitbuild/exec/RunConsoleLauncher.kt b/gradle/plugins/common/src/main/kotlin/junitbuild/exec/RunConsoleLauncher.kt
index 896e76090c6f..4ab463b11eba 100644
--- a/gradle/plugins/common/src/main/kotlin/junitbuild/exec/RunConsoleLauncher.kt
+++ b/gradle/plugins/common/src/main/kotlin/junitbuild/exec/RunConsoleLauncher.kt
@@ -20,7 +20,7 @@ import org.gradle.kotlin.dsl.get
import org.gradle.kotlin.dsl.the
import org.gradle.process.CommandLineArgumentProvider
import org.gradle.process.ExecOperations
-import trackOperationSystemAsInput
+import junitbuild.extensions.trackOperationSystemAsInput
import java.io.ByteArrayOutputStream
import javax.inject.Inject
diff --git a/gradle/plugins/common/src/main/kotlin/junitbuild/java/PatchModuleArgumentProvider.kt b/gradle/plugins/common/src/main/kotlin/junitbuild/java/PatchModuleArgumentProvider.kt
index 8149094e6128..6b21c5a1bb7b 100644
--- a/gradle/plugins/common/src/main/kotlin/junitbuild/java/PatchModuleArgumentProvider.kt
+++ b/gradle/plugins/common/src/main/kotlin/junitbuild/java/PatchModuleArgumentProvider.kt
@@ -1,6 +1,6 @@
package junitbuild.java
-import javaModuleName
+import junitbuild.extensions.javaModuleName
import org.gradle.api.Named
import org.gradle.api.Project
import org.gradle.api.file.ConfigurableFileCollection
diff --git a/gradle/plugins/publishing/build.gradle.kts b/gradle/plugins/publishing/build.gradle.kts
new file mode 100644
index 000000000000..e010a00708d4
--- /dev/null
+++ b/gradle/plugins/publishing/build.gradle.kts
@@ -0,0 +1,10 @@
+import junitbuild.extensions.markerCoordinates
+
+plugins {
+ `kotlin-dsl`
+}
+
+dependencies {
+ implementation("junitbuild.base:dsl-extensions")
+ implementation(libs.plugins.jreleaser.markerCoordinates)
+}
diff --git a/gradle/plugins/publishing/src/main/kotlin/junitbuild.maven-central-publishing.gradle.kts b/gradle/plugins/publishing/src/main/kotlin/junitbuild.maven-central-publishing.gradle.kts
new file mode 100644
index 000000000000..bdbd857ea8ae
--- /dev/null
+++ b/gradle/plugins/publishing/src/main/kotlin/junitbuild.maven-central-publishing.gradle.kts
@@ -0,0 +1,69 @@
+import org.jreleaser.model.Active.RELEASE
+import org.jreleaser.model.api.deploy.maven.MavenCentralMavenDeployer.Stage
+import java.util.Properties
+
+plugins {
+ id("org.jreleaser")
+ id("junitbuild.temp-maven-repo")
+}
+
+val tempRepoDir: File by extra
+
+tasks.jreleaserDeploy {
+ dependsOn("publishAllSubprojectsToTempRepository")
+ outputs.upToDateWhen { false }
+ doLast {
+ val outputProperties = Properties()
+ layout.buildDirectory.file("jreleaser/output.properties").get().asFile.inputStream().use { input ->
+ outputProperties.load(input)
+ }
+ val deploymentId = outputProperties.getProperty("deploymentId")
+ if (deploymentId != null) {
+ println("Deployment ID: $deploymentId")
+ println("Staging Repo URL: https://central.sonatype.com/api/v1/publisher/deployment/$deploymentId/download")
+ }
+ }
+}
+
+val mavenCentralUsername = providers.gradleProperty("mavenCentralUsername")
+val mavenCentralPassword = providers.gradleProperty("mavenCentralPassword")
+
+jreleaser {
+ deploy {
+ maven {
+ mavenCentral {
+ register("artifacts") {
+ active = RELEASE
+ url = "https://central.sonatype.com/api/v1/publisher"
+ username = mavenCentralUsername
+ password = mavenCentralPassword
+ stagingRepository(tempRepoDir.absolutePath)
+ applyMavenCentralRules = true
+ sign = false
+ checksums = false
+ namespace = "org.junit"
+ stage = providers.gradleProperty("jreleaser.mavencentral.stage")
+ .map(Stage::of)
+ .orElse(Stage.UPLOAD)
+ }
+ }
+ }
+ }
+}
+
+subprojects {
+ pluginManager.withPlugin("maven-publish") {
+ configure {
+ repositories {
+ maven {
+ name = "mavenCentralSnapshots"
+ url = uri("https://central.sonatype.com/repository/maven-snapshots")
+ credentials {
+ username = mavenCentralUsername.orNull
+ password = mavenCentralPassword.orNull
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/gradle/plugins/common/src/main/kotlin/junitbuild.temp-maven-repo.gradle.kts b/gradle/plugins/publishing/src/main/kotlin/junitbuild.temp-maven-repo.gradle.kts
similarity index 75%
rename from gradle/plugins/common/src/main/kotlin/junitbuild.temp-maven-repo.gradle.kts
rename to gradle/plugins/publishing/src/main/kotlin/junitbuild.temp-maven-repo.gradle.kts
index 3f48f5d656d7..d2c25e9096c8 100644
--- a/gradle/plugins/common/src/main/kotlin/junitbuild.temp-maven-repo.gradle.kts
+++ b/gradle/plugins/publishing/src/main/kotlin/junitbuild.temp-maven-repo.gradle.kts
@@ -13,7 +13,10 @@ val clearTempRepoDir by tasks.registering {
}
}
-val verifyArtifactsInStagingRepositoryAreReproducible by tasks.registering(VerifyBinaryArtifactsAreIdentical::class) {
+val publishAllSubprojectsToTempRepository by tasks.registering
+
+tasks.register("verifyArtifactsInStagingRepositoryAreReproducible") {
+ dependsOn(publishAllSubprojectsToTempRepository)
localRepoDir.set(tempRepoDir)
}
@@ -32,7 +35,7 @@ subprojects {
publishingTasks.configureEach {
dependsOn(clearTempRepoDir)
}
- verifyArtifactsInStagingRepositoryAreReproducible {
+ publishAllSubprojectsToTempRepository {
dependsOn(publishingTasks)
}
}
diff --git a/gradle/plugins/common/src/main/kotlin/junitbuild/release/VerifyBinaryArtifactsAreIdentical.kt b/gradle/plugins/publishing/src/main/kotlin/junitbuild/release/VerifyBinaryArtifactsAreIdentical.kt
similarity index 100%
rename from gradle/plugins/common/src/main/kotlin/junitbuild/release/VerifyBinaryArtifactsAreIdentical.kt
rename to gradle/plugins/publishing/src/main/kotlin/junitbuild/release/VerifyBinaryArtifactsAreIdentical.kt
diff --git a/gradle/plugins/settings.gradle.kts b/gradle/plugins/settings.gradle.kts
index 41935db0aa36..bb41fd436361 100644
--- a/gradle/plugins/settings.gradle.kts
+++ b/gradle/plugins/settings.gradle.kts
@@ -1,3 +1,11 @@
+pluginManagement {
+ includeBuild("../base")
+}
+
+plugins {
+ id("junitbuild.dsl-extensions") apply false
+}
+
dependencyResolutionManagement {
versionCatalogs {
create("libs") {
@@ -11,10 +19,9 @@ dependencyResolutionManagement {
rootProject.name = "plugins"
-includeBuild("../base")
-
include("build-parameters")
include("common")
include("code-generator")
+include("publishing")
enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS")
diff --git a/junit-jupiter-params/junit-jupiter-params.gradle.kts b/junit-jupiter-params/junit-jupiter-params.gradle.kts
index 0eef4adb7299..f146a8102366 100644
--- a/junit-jupiter-params/junit-jupiter-params.gradle.kts
+++ b/junit-jupiter-params/junit-jupiter-params.gradle.kts
@@ -1,3 +1,5 @@
+import junitbuild.extensions.javaModuleName
+
plugins {
id("junitbuild.kotlin-library-conventions")
id("junitbuild.shadow-conventions")
diff --git a/junit-platform-console-standalone/junit-platform-console-standalone.gradle.kts b/junit-platform-console-standalone/junit-platform-console-standalone.gradle.kts
index 99ed213d9837..503f1a4a744c 100644
--- a/junit-platform-console-standalone/junit-platform-console-standalone.gradle.kts
+++ b/junit-platform-console-standalone/junit-platform-console-standalone.gradle.kts
@@ -1,3 +1,4 @@
+import junitbuild.extensions.dependencyProject
import junitbuild.java.WriteArtifactsFile
plugins {
diff --git a/junit-platform-console/junit-platform-console.gradle.kts b/junit-platform-console/junit-platform-console.gradle.kts
index cd256959b629..7a032e5ae482 100644
--- a/junit-platform-console/junit-platform-console.gradle.kts
+++ b/junit-platform-console/junit-platform-console.gradle.kts
@@ -1,3 +1,4 @@
+import junitbuild.extensions.javaModuleName
import junitbuild.java.UpdateJarAction
plugins {
diff --git a/junit-platform-reporting/junit-platform-reporting.gradle.kts b/junit-platform-reporting/junit-platform-reporting.gradle.kts
index e9094c04f2e1..328293080077 100644
--- a/junit-platform-reporting/junit-platform-reporting.gradle.kts
+++ b/junit-platform-reporting/junit-platform-reporting.gradle.kts
@@ -1,3 +1,5 @@
+import junitbuild.extensions.javaModuleName
+
plugins {
id("junitbuild.java-library-conventions")
id("junitbuild.native-image-properties")
diff --git a/platform-tests/platform-tests.gradle.kts b/platform-tests/platform-tests.gradle.kts
index 3e63fe5fe14f..38e1b9ed1e4e 100644
--- a/platform-tests/platform-tests.gradle.kts
+++ b/platform-tests/platform-tests.gradle.kts
@@ -1,5 +1,5 @@
-
import junitbuild.extensions.capitalized
+import junitbuild.extensions.dependencyProject
import org.gradle.api.tasks.PathSensitivity.RELATIVE
import org.gradle.internal.os.OperatingSystem
diff --git a/platform-tooling-support-tests/platform-tooling-support-tests.gradle.kts b/platform-tooling-support-tests/platform-tooling-support-tests.gradle.kts
index fdb21be76b39..409fd136da6e 100644
--- a/platform-tooling-support-tests/platform-tooling-support-tests.gradle.kts
+++ b/platform-tooling-support-tests/platform-tooling-support-tests.gradle.kts
@@ -1,6 +1,6 @@
-
import com.gradle.develocity.agent.gradle.internal.test.TestDistributionConfigurationInternal
import junitbuild.extensions.capitalized
+import junitbuild.extensions.dependencyProject
import org.gradle.api.tasks.PathSensitivity.RELATIVE
import org.gradle.kotlin.dsl.support.listFilesOrdered
import java.time.Duration
diff --git a/platform-tooling-support-tests/src/test/java/platform/tooling/support/tests/MavenRepoProxy.java b/platform-tooling-support-tests/src/test/java/platform/tooling/support/tests/MavenRepoProxy.java
index 96a657d750c8..2525a5c8c588 100644
--- a/platform-tooling-support-tests/src/test/java/platform/tooling/support/tests/MavenRepoProxy.java
+++ b/platform-tooling-support-tests/src/test/java/platform/tooling/support/tests/MavenRepoProxy.java
@@ -32,7 +32,7 @@ public MavenRepoProxy() throws IOException {
@SuppressWarnings("unused")
public MavenRepoProxy(int port) throws IOException {
- this("https://oss.sonatype.org/content/repositories/snapshots", port);
+ this("https://central.sonatype.com/repository/maven-snapshots", port);
}
private MavenRepoProxy(String proxiedUrl, int port) throws IOException {