From 20181493958fd3fe68ddabea018227d212889b34 Mon Sep 17 00:00:00 2001 From: Jason <11360596+jpenilla@users.noreply.github.com> Date: Tue, 8 Jun 2021 15:36:43 -0700 Subject: [PATCH] Clean up Bukkit API exclusion, use dep constraint for SnakeYAML (#4213) --- Essentials/build.gradle | 3 +-- .../src/main/kotlin/EssentialsBaseExtension.kt | 7 +++++++ .../essentials.base-conventions.gradle.kts | 16 +++++++++++++--- providers/1_8Provider/build.gradle | 4 ++++ providers/NMSReflectionProvider/build.gradle | 4 ++++ providers/PaperProvider/build.gradle | 4 ++++ 6 files changed, 33 insertions(+), 5 deletions(-) create mode 100644 build-logic/src/main/kotlin/EssentialsBaseExtension.kt diff --git a/Essentials/build.gradle b/Essentials/build.gradle index 32345d9c3..93169d968 100644 --- a/Essentials/build.gradle +++ b/Essentials/build.gradle @@ -13,8 +13,7 @@ dependencies { api 'org.bstats:bstats-bukkit:1.8' implementation 'org.spongepowered:configurate-yaml:4.1.1' - implementation 'org.yaml:snakeyaml:1.+' - implementation 'org.checkerframework:checker-qual:3.7.1' + implementation 'org.checkerframework:checker-qual:3.14.0' // Providers api project(':providers:BaseProviders') diff --git a/build-logic/src/main/kotlin/EssentialsBaseExtension.kt b/build-logic/src/main/kotlin/EssentialsBaseExtension.kt new file mode 100644 index 000000000..57cbd443a --- /dev/null +++ b/build-logic/src/main/kotlin/EssentialsBaseExtension.kt @@ -0,0 +1,7 @@ +import org.gradle.api.Project +import org.gradle.api.provider.Property +import org.gradle.kotlin.dsl.property + +abstract class EssentialsBaseExtension(private val project: Project) { + val injectBukkitApi: Property = project.objects.property().convention(true) +} diff --git a/build-logic/src/main/kotlin/essentials.base-conventions.gradle.kts b/build-logic/src/main/kotlin/essentials.base-conventions.gradle.kts index 0261315ee..d046d8c87 100644 --- a/build-logic/src/main/kotlin/essentials.base-conventions.gradle.kts +++ b/build-logic/src/main/kotlin/essentials.base-conventions.gradle.kts @@ -7,6 +7,8 @@ plugins { id("net.kyori.indra.publishing") } +val baseExtension = extensions.create("essentials", project) + val checkstyleVersion = "8.36.2" val spigotVersion = "1.16.5-R0.1-SNAPSHOT" val junit5Version = "5.7.0" @@ -17,9 +19,17 @@ dependencies { testImplementation("org.junit.vintage", "junit-vintage-engine", junit5Version) testImplementation("org.mockito", "mockito-core", mockitoVersion) - if (project.name != "1_8Provider" && project.name != "PaperProvider" && project.name != "NMSReflectionProvider") { // These providers use their own bukkit versions - api("org.spigotmc", "spigot-api", spigotVersion) { - exclude(group = "org.yaml", module = "snakeyaml") + constraints { + implementation("org.yaml:snakeyaml:1.28") { + because("Bukkit API ships old versions, Configurate requires modern versions") + } + } +} + +afterEvaluate { + if (baseExtension.injectBukkitApi.get()) { + dependencies { + api("org.spigotmc", "spigot-api", spigotVersion) } } } diff --git a/providers/1_8Provider/build.gradle b/providers/1_8Provider/build.gradle index 9bcea0a99..ad62d860c 100644 --- a/providers/1_8Provider/build.gradle +++ b/providers/1_8Provider/build.gradle @@ -5,3 +5,7 @@ plugins { dependencies { api project(':providers:NMSReflectionProvider') } + +essentials { + injectBukkitApi.set(false) +} diff --git a/providers/NMSReflectionProvider/build.gradle b/providers/NMSReflectionProvider/build.gradle index 62c703b01..b2510f3f0 100644 --- a/providers/NMSReflectionProvider/build.gradle +++ b/providers/NMSReflectionProvider/build.gradle @@ -6,3 +6,7 @@ dependencies { implementation project(':providers:BaseProviders') api 'org.bukkit:bukkit:1.12.2-R0.1-SNAPSHOT' } + +essentials { + injectBukkitApi.set(false) +} diff --git a/providers/PaperProvider/build.gradle b/providers/PaperProvider/build.gradle index 29d264896..09b6de45e 100644 --- a/providers/PaperProvider/build.gradle +++ b/providers/PaperProvider/build.gradle @@ -6,3 +6,7 @@ dependencies { implementation project(':providers:BaseProviders') compileOnly 'com.destroystokyo.paper:paper-api:1.16.5-R0.1-SNAPSHOT' } + +essentials { + injectBukkitApi.set(false) +}