diff --git a/build-logic/src/main/kotlin/cloud.base-conventions.gradle.kts b/build-logic/src/main/kotlin/cloud.base-conventions.gradle.kts index 0da04e4c..fe0a81c3 100644 --- a/build-logic/src/main/kotlin/cloud.base-conventions.gradle.kts +++ b/build-logic/src/main/kotlin/cloud.base-conventions.gradle.kts @@ -10,13 +10,6 @@ plugins { } indra { - publishSnapshotsTo("incendo", "https://repo.incendo.org/content/repositories/snapshots/") - - github("Incendo", "cloud") { - ci(true) - } - mitLicense() - javaVersions { minimumToolchain(16) target(8) @@ -24,19 +17,6 @@ indra { } checkstyle("8.39") - - configurePublications { - pom { - developers { - developer { - id.set("Sauilitired") - name.set("Alexander Söderberg") - url.set("https://alexander-soderberg.com") - email.set("contact@alexander-soderberg.com") - } - } - } - } } /* Disable checkstyle on tests */ diff --git a/build-logic/src/main/kotlin/cloud.publishing-conventions.gradle.kts b/build-logic/src/main/kotlin/cloud.publishing-conventions.gradle.kts new file mode 100644 index 00000000..44169f8c --- /dev/null +++ b/build-logic/src/main/kotlin/cloud.publishing-conventions.gradle.kts @@ -0,0 +1,31 @@ +plugins { + id("net.kyori.indra.publishing") +} + +signing { + val signingKey: String? by project + val signingPassword: String? by project + useInMemoryPgpKeys(signingKey, signingPassword) +} + +indra { + publishSnapshotsTo("incendo", "https://repo.incendo.org/content/repositories/snapshots/") + + github("Incendo", "cloud") { + ci(true) + } + mitLicense() + + configurePublications { + pom { + developers { + developer { + id.set("Sauilitired") + name.set("Alexander Söderberg") + url.set("https://alexander-soderberg.com") + email.set("contact@alexander-soderberg.com") + } + } + } + } +} diff --git a/build-logic/src/main/kotlin/cloud.publishing.gradle.kts b/build-logic/src/main/kotlin/cloud.publishing.gradle.kts deleted file mode 100644 index 6660e25a..00000000 --- a/build-logic/src/main/kotlin/cloud.publishing.gradle.kts +++ /dev/null @@ -1,10 +0,0 @@ -plugins { - id("cloud.base-conventions") - id("net.kyori.indra.publishing") -} - -signing { - val signingKey: String? by project - val signingPassword: String? by project - useInMemoryPgpKeys(signingKey, signingPassword) -} diff --git a/build.gradle.kts b/build.gradle.kts index 37fbaed3..fe7515e9 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -8,8 +8,10 @@ version = "1.6.0-SNAPSHOT" description = "Command framework and dispatcher for the JVM" subprojects { - plugins.apply("cloud.base-conventions") + if (name != "cloud-bom") { + apply(plugin = "cloud.base-conventions") + } if (!name.startsWith("example-")) { - plugins.apply("cloud.publishing") + apply(plugin = "cloud.publishing-conventions") } } diff --git a/cloud-bom/build.gradle.kts b/cloud-bom/build.gradle.kts new file mode 100644 index 00000000..fd29b0f7 --- /dev/null +++ b/cloud-bom/build.gradle.kts @@ -0,0 +1,25 @@ +plugins { + `java-platform` +} + +indra { + configurePublications { + from(components["javaPlatform"]) + } +} + +dependencies { + constraints { + for (subproject in rootProject.subprojects) { + if (subproject == project) { // the bom itself + continue + } + + if (subproject.name.startsWith("example-")) { + continue + } + + api(project(subproject.path)) + } + } +} diff --git a/settings.gradle.kts b/settings.gradle.kts index 758bc003..1c16c4aa 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -13,6 +13,8 @@ plugins { rootProject.name = "cloud" +include(":cloud-bom") + // Core Modules include(":cloud-core") include(":cloud-services")