From 9ffa935c0c2f16124199ad7306111996909751ea Mon Sep 17 00:00:00 2001 From: Alexander Brandes Date: Thu, 9 Jun 2022 12:57:37 +0200 Subject: [PATCH] build: Switch to bill of materials (#3653) * build: Switch to managed dependencies * build: Move bom to root build script * build: Update bom * Update build.gradle.kts * fix: Use the correct bom version --- Bukkit/build.gradle.kts | 16 ++++++++-------- Core/build.gradle.kts | 20 ++++++++++---------- build.gradle.kts | 6 +++++- gradle/libs.versions.toml | 25 ------------------------- 4 files changed, 23 insertions(+), 44 deletions(-) diff --git a/Bukkit/build.gradle.kts b/Bukkit/build.gradle.kts index 9d94c436f..535bb4d4b 100644 --- a/Bukkit/build.gradle.kts +++ b/Bukkit/build.gradle.kts @@ -21,20 +21,20 @@ dependencies { api(projects.plotSquaredCore) // Metrics - implementation(libs.bstats) + implementation("org.bstats:bstats-bukkit") // Paper compileOnly(libs.paper) - implementation(libs.paperlib) + implementation("io.papermc:paperlib") // Plugins compileOnly(libs.worldeditBukkit) { exclude(group = "org.bukkit") exclude(group = "org.spigotmc") } - compileOnly(libs.fastasyncworldeditBukkit) { isTransitive = false } - testImplementation(libs.fastasyncworldeditBukkit) { isTransitive = false } - compileOnly(libs.vault) { + compileOnly("com.fastasyncworldedit:FastAsyncWorldEdit-Bukkit") { isTransitive = false } + testImplementation("com.fastasyncworldedit:FastAsyncWorldEdit-Bukkit") { isTransitive = false } + compileOnly("com.github.MilkBowl:VaultAPI") { exclude(group = "org.bukkit") } compileOnly(libs.placeholderapi) @@ -44,15 +44,15 @@ dependencies { // Other libraries implementation(libs.squirrelid) { isTransitive = false } - implementation(libs.serverlib) + implementation("dev.notmyfault.serverlib:ServerLib") // Our libraries implementation(libs.arkitektonika) implementation(libs.http4j) - implementation(libs.paster) + implementation("com.intellectualsites.paster:Paster") // Adventure - implementation(libs.adventurePlatformBukkit) + implementation("net.kyori:adventure-platform-bukkit") } tasks.processResources { diff --git a/Core/build.gradle.kts b/Core/build.gradle.kts index 9bf697e9d..6fb73795e 100644 --- a/Core/build.gradle.kts +++ b/Core/build.gradle.kts @@ -2,18 +2,18 @@ import java.time.format.DateTimeFormatter dependencies { // Expected everywhere. - compileOnlyApi(libs.checkerqual) + compileOnlyApi("org.checkerframework:checker-qual") // Minecraft expectations - compileOnlyApi(libs.gson) - compileOnly(libs.guava) + compileOnlyApi("com.google.code.gson:gson") + compileOnly("com.google.guava:guava") // Platform expectations - compileOnlyApi(libs.snakeyaml) + compileOnlyApi("org.yaml:snakeyaml") // Adventure - api(libs.adventure) - api(libs.minimessage) + api("net.kyori:adventure-api") + api("net.kyori:adventure-text-minimessage") // Guice api(libs.guice) { @@ -31,18 +31,18 @@ dependencies { exclude(group = "dummypermscompat") } testImplementation(libs.worldeditCore) - compileOnly(libs.fastasyncworldeditCore) { isTransitive = false } - testImplementation(libs.fastasyncworldeditCore) { isTransitive = false } + compileOnly("com.fastasyncworldedit:FastAsyncWorldEdit-Core") { isTransitive = false } + testImplementation("com.fastasyncworldedit:FastAsyncWorldEdit-Core") { isTransitive = false } // Logging - compileOnlyApi(libs.log4j) + compileOnlyApi("org.apache.logging.log4j:log4j-api") // Other libraries api(libs.prtree) api(libs.aopalliance) api(libs.cloudServices) api(libs.arkitektonika) - api(libs.paster) + api("com.intellectualsites.paster:Paster") } tasks.processResources { diff --git a/build.gradle.kts b/build.gradle.kts index 282eaabd5..e2dd9ec20 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -34,7 +34,7 @@ allprojects { maven { name = "Sonatype OSS (S01)" - url = uri("https://s01.oss.sonatype.org/content/repositories/snapshots") + url = uri("https://s01.oss.sonatype.org/content/repositories/snapshots/") } maven { @@ -64,6 +64,10 @@ subprojects { plugin() plugin() } + + dependencies { + implementation(platform("com.intellectualsites.bom:bom-1.18.x:1.2")) + } } allprojects { diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 8c095ba58..5f17f2fd1 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,15 +1,9 @@ [versions] -# Minecraft expectations -gson = "2.8.8" # Version set by Minecraft -log4j-api = "2.17.1" # Version set by Minecraft -guava = "31.0.1-jre" # Version set by Minecraft - # Platform expectations paper = "1.18.1-R0.1-SNAPSHOT" checker-qual = "3.22.0" guice = "5.1.0" spotbugs = "4.7.0" -snakeyaml = "1.30" # Version set by Bukkit # Adventure & MiniMessage adventure-api = "4.9.3" @@ -18,8 +12,6 @@ adventure-platform-bukkit = "4.0.1" # Plugins worldedit = "7.2.10" -fawe = "2.2.0" -vault = "1.7.1" placeholderapi = "2.11.1" luckperms = "5.4" essentialsx = "2.19.4" @@ -30,11 +22,7 @@ prtree = "2.0.0" aopalliance = "1.0" cloud-services = "1.6.2" arkitektonika = "2.1.1" -paster = "1.1.4" -bstats = "3.0.0" -paperlib = "1.0.7" squirrelid = "0.3.1" -serverlib = "2.3.1" http4j = "1.3" # Gradle plugins @@ -48,12 +36,7 @@ nexus = "1.1.0" paper = { group = "io.papermc.paper", name = "paper-api", version.ref = "paper" } checkerqual = { group = "org.checkerframework", name = "checker-qual", version.ref = "checker-qual" } -# Minecraft expectations -gson = { group = "com.google.code.gson", name = "gson", version.ref = "gson" } -log4j = { group = "org.apache.logging.log4j", name = "log4j-api", version.ref = "log4j-api" } - # Platform expectations -snakeyaml = { group = "org.yaml", name = "snakeyaml", version.ref = "snakeyaml" } guice = { group = "com.google.inject", name = "guice", version.ref = "guice" } guiceassistedinject = { group = "com.google.inject.extensions", name = "guice-assistedinject", version.ref = "guice" } spotbugs = { group = "com.github.spotbugs", name = "spotbugs-annotations", version.ref = "spotbugs" } @@ -66,9 +49,6 @@ adventurePlatformBukkit = { group = "net.kyori", name = "adventure-platform-bukk # Plugins worldeditCore = { group = "com.sk89q.worldedit", name = "worldedit-core", version.ref = "worldedit" } worldeditBukkit = { group = "com.sk89q.worldedit", name = "worldedit-bukkit", version.ref = "worldedit" } -fastasyncworldeditBukkit = { group = "com.fastasyncworldedit", name = "FastAsyncWorldEdit-Bukkit", version.ref = "fawe" } -fastasyncworldeditCore = { group = "com.fastasyncworldedit", name = "FastAsyncWorldEdit-Core", version.ref = "fawe" } -vault = { group = "com.github.MilkBowl", name = "VaultAPI", version.ref = "vault" } placeholderapi = { group = "me.clip", name = "placeholderapi", version.ref = "placeholderapi" } luckperms = { group = "net.luckperms", name = "api", version.ref = "luckperms" } essentialsx = { group = "net.essentialsx", name = "EssentialsX", version.ref = "essentialsx" } @@ -79,13 +59,8 @@ aopalliance = { group = "aopalliance", name = "aopalliance", version.ref = "aopa cloudServices = { group = "cloud.commandframework", name = "cloud-services", version.ref = "cloud-services" } mvdwapi = { group = "com.intellectualsites.mvdwplaceholderapi", name = "MVdWPlaceholderAPI", version.ref = "mvdwapi" } squirrelid = { group = "org.enginehub", name = "squirrelid", version.ref = "squirrelid" } -serverlib = { group = "dev.notmyfault.serverlib", name = "ServerLib", version.ref = "serverlib" } -bstats = { group = "org.bstats", name = "bstats-bukkit", version.ref = "bstats" } -paperlib = { group = "io.papermc", name = "paperlib", version.ref = "paperlib" } arkitektonika = { group = "com.intellectualsites.arkitektonika", name = "Arkitektonika-Client", version.ref = "arkitektonika" } http4j = { group = "com.intellectualsites.http", name = "HTTP4J", version.ref = "http4j" } -paster = { group = "com.intellectualsites.paster", name = "Paster", version.ref = "paster" } -guava = { group = "com.google.guava", name = "guava", version.ref = "guava" } [plugins] shadow = { id = "com.github.johnrengelman.shadow", version.ref = "shadow" }