From a1a7285df094de4fdfb47ccc38e6c8a79a137fe3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=9B=9F=E9=BE=99?= <75253383+TheFloodDragon@users.noreply.github.com> Date: Tue, 11 Feb 2025 17:26:19 +0800 Subject: [PATCH] Chores & Migrate to libs.versions.toml (#243) * update dependenices & workflows * Migrate to libs.versions.toml --- .github/workflows/build.yml | 11 ++----- .github/workflows/maven.yml | 0 build.gradle.kts | 63 ++++++++++++++++++------------------- gradle/libs.versions.toml | 56 +++++++++++++++++++++++++++++++++ 4 files changed, 89 insertions(+), 41 deletions(-) delete mode 100644 .github/workflows/maven.yml create mode 100644 gradle/libs.versions.toml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 50bf2bd6..3a6c29be 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -14,18 +14,13 @@ jobs: steps: - name: Checkout Repository uses: actions/checkout@v4 - - name: Cache Gradle Packages - uses: actions/cache@v4 - with: - key: ${{ runner.os }}-Build-Cache - path: | - ~/.gradle/caches - ~/.gradle/wrapper - name: Setup Java uses: actions/setup-java@v4 with: - distribution: temurin java-version: 21 + distribution: temurin + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 - name: Make Gradle Wrapper Executable run: chmod +x ./gradlew - name: Build diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml deleted file mode 100644 index e69de29b..00000000 diff --git a/build.gradle.kts b/build.gradle.kts index da797ffe..cd120565 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -37,57 +37,57 @@ repositories { dependencies { // Spigot API, https://www.spigotmc.org/ compileOnly("org.spigotmc:spigot-api:1.20.6-R0.1-SNAPSHOT") + // Adventure API + implementation(libs.adventure.text.minimessage) + implementation(libs.adventure.platform.bukkit) + implementation(libs.adventure.text.serializer.gson) // Java Libraries compileOnly("org.geysermc.floodgate:api:2.2.2-SNAPSHOT") // Jalu Injector - implementation("ch.jalu:injector:1.0") + implementation(libs.injector) // String comparison library. Used for dynamic help system. - implementation("net.ricecode:string-similarity:1.0.0") + implementation(libs.string.similarity) // MaxMind GEO IP with our modifications to use GSON in replacement of the big Jackson dependency // GSON is already included and therefore it reduces the file size in comparison to the original version - implementation("com.maxmind.db:maxmind-db-gson:2.0.3") { + implementation(libs.maxmind.db.gson) { exclude("com.google.code.gson", "gson") } // Library for tar archives - implementation("javatar:javatar:2.5") + implementation(libs.javatar) // Java Email Library - implementation("org.apache.commons:commons-email:1.6-SNAPSHOT") + implementation(libs.commons.email) // Log4J Logger (required by the console filter) - compileOnly("org.apache.logging.log4j:log4j-core:2.20.0") // Log4J version bundled in 1.12.2 + compileOnly(libs.log4j.core) // Log4J version bundled in 1.12.2 // Libby - implementation("com.alessiodp.libby:libby-bukkit:2.0.0-SNAPSHOT") + implementation(libs.libby.bukkit) // Database Connection Pool - implementation("com.zaxxer:HikariCP:4.0.3" /* Latest java 8 release */) { + implementation(libs.hikaricp) { exclude("org.slf4j", "slf4j-api") } // HikariCP Logger - implementation("org.slf4j:slf4j-simple:1.7.36") // We can't update to 2.x as long as we use HikariCP for java 8 + implementation(libs.slf4j.simple) // We can't update to 2.x as long as we use HikariCP for java 8 // PBKDF2 implementation - implementation("de.rtner:PBKDF2:1.1.4") + implementation(libs.pbkdf2) // MySQL connector, shaded into the legacy jar - implementation("com.mysql:mysql-connector-j:8.4.0") - implementation("org.mariadb.jdbc:mariadb-java-client:3.3.3") + implementation(libs.mysql.connector.j) + implementation(libs.mariadb.java.client) // Argon2 implementation - implementation("de.mkammerer:argon2-jvm-nolibs:2.11") + implementation(libs.argon2.jvm.nolibs) // TOTP client - implementation("com.warrenstrange:googleauth:1.5.0") + implementation(libs.googleauth) // Keep in sync with spigot 1.19 - implementation("com.google.guava:guava:33.2.1-jre") { + implementation(libs.guava) { exclude("org.checkerframework", "checker-qual") } - implementation("com.google.code.gson:gson:2.10.1") + implementation(libs.gson) // ConfigMe - implementation("ch.jalu:configme:1.3.1") { + implementation(libs.configme) { exclude("org.yaml", "snakeyaml") } // bStats metrics implementation("org.bstats:bstats-bukkit:3.0.2") // ProtocolLib - compileOnly("com.comphenix.protocol:ProtocolLib:5.1.0") - // Adventure API - implementation("net.kyori:adventure-text-minimessage:4.17.0") - implementation("net.kyori:adventure-platform-bukkit:4.3.2") - implementation("net.kyori:adventure-text-serializer-gson:4.17.0") + compileOnly("com.comphenix.protocol:ProtocolLib:5.3.0") // LuckPerms plugin compileOnly("net.luckperms:api:5.4") // PermissionsEx plugin @@ -105,22 +105,22 @@ dependencies { exclude("io.papermc", "paperlib") } // BCrypt implementation - implementation("at.favre.lib:bcrypt:0.10.2") + implementation(libs.bcrypt) // PlaceholderAPI compileOnly("me.clip:placeholderapi:2.11.6") // XAuth, another authentication plugin, required by the database converter compileOnly("de.luricos.bukkit:xAuth:2.6.1-SNAPSHOT") - implementation("ch.jalu:datasourcecolumns:0.1.1-SNAPSHOT") - implementation("org.postgresql:postgresql:42.7.3") { + implementation(libs.datasourcecolumns) + implementation(libs.postgresql) { exclude("org.checkerframework", "checker-qual") } // Required to mock the LuckPerms API - testImplementation("org.checkerframework:checker-qual:3.48.0") + testImplementation(libs.checker.qual) // Universal Scheduler - implementation("com.github.Anon8281:UniversalScheduler:0.1.6") + implementation(libs.universalscheduler) // JDBC drivers for datasource integration tests - testImplementation("org.xerial:sqlite-jdbc:3.47.1.0") - compileOnly("com.h2database:h2:2.2.224") + testImplementation(libs.sqlite.jdbc) + compileOnly(libs.h2) } tasks { @@ -169,10 +169,7 @@ tasks { // bStats metrics class relocate("org.bstats", "fr.xephi.authme.libs.org.bstats") relocate("org.mariadb.jdbc", "fr.xephi.authme.libs.org.mariadb.jdbc") - relocate( - "com.github.Anon8281.universalScheduler", - "fr.xephi.authme.libs.com.github.Anon8281.universalScheduler" - ) + relocate("com.github.Anon8281.universalScheduler", "fr.xephi.authme.libs.com.github.Anon8281.universalScheduler") relocate("com.mysql", "fr.xephi.authme.libs.com.mysql") relocate("com.google.protobuf", "fr.xephi.authme.libs.com.google.protobuf") relocate("io.netty", "fr.xephi.authme.libs.io.netty") diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 00000000..a5afecdc --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,56 @@ +[versions] +adventureApi = "4.18.0" +adventurePlatform = "4.3.4" +injector = "1.0" +string-similarity = "1.0.0" +maxmind-db-gson = "2.0.3" +javatar = "2.5" +commons-email = "1.6-SNAPSHOT" +log4j-core = "2.20.0" +libby-bukkit = "2.0.0-SNAPSHOT" +hikaricp = "4.0.3" +slf4j-simple = "1.7.36" +pbkdf2 = "1.1.4" +mysql-connector-j = "9.1.0" +mariadb-java-client = "3.5.1" +argon2-jvm-nolibs = "2.11" +googleauth = "1.5.0" +guava = "33.2.1-jre" +gson = "2.10.1" +configme = "1.3.1" +bcrypt = "0.10.2" +datasourcecolumns = "0.1.1-SNAPSHOT" +postgresql = "42.7.4" +checker-qual = "3.48.0" +universalscheduler = "0.1.6" +sqlite-jdbc = "3.47.1.0" +h2 = "2.2.224" + +[libraries] +adventure-text-minimessage = { group = "net.kyori", name = "adventure-text-minimessage", version.ref = "adventureApi" } +adventure-platform-bukkit = { group = "net.kyori", name = "adventure-platform-bukkit", version.ref = "adventurePlatform" } +adventure-text-serializer-gson = { group = "net.kyori", name = "adventure-text-serializer-gson", version.ref = "adventureApi" } +injector = { group = "ch.jalu", name = "injector", version.ref = "injector" } +string-similarity = { group = "net.ricecode", name = "string-similarity", version.ref = "string-similarity" } +maxmind-db-gson = { group = "com.maxmind.db", name = "maxmind-db-gson", version.ref = "maxmind-db-gson" } +javatar = { group = "javatar", name = "javatar", version.ref = "javatar" } +commons-email = { group = "org.apache.commons", name = "commons-email", version.ref = "commons-email" } +log4j-core = { group = "org.apache.logging.log4j", name = "log4j-core", version.ref = "log4j-core" } +libby-bukkit = { group = "com.alessiodp.libby", name = "libby-bukkit", version.ref = "libby-bukkit" } +hikaricp = { group = "com.zaxxer", name = "HikariCP", version.ref = "hikaricp" } +slf4j-simple = { group = "org.slf4j", name = "slf4j-simple", version.ref = "slf4j-simple" } +pbkdf2 = { group = "de.rtner", name = "PBKDF2", version.ref = "pbkdf2" } +mysql-connector-j = { group = "com.mysql", name = "mysql-connector-j", version.ref = "mysql-connector-j" } +mariadb-java-client = { group = "org.mariadb.jdbc", name = "mariadb-java-client", version.ref = "mariadb-java-client" } +argon2-jvm-nolibs = { group = "de.mkammerer", name = "argon2-jvm-nolibs", version.ref = "argon2-jvm-nolibs" } +googleauth = { group = "com.warrenstrange", name = "googleauth", version.ref = "googleauth" } +guava = { group = "com.google.guava", name = "guava", version.ref = "guava" } +gson = { group = "com.google.code.gson", name = "gson", version.ref = "gson" } +configme = { group = "ch.jalu", name = "configme", version.ref = "configme" } +bcrypt = { group = "at.favre.lib", name = "bcrypt", version.ref = "bcrypt" } +datasourcecolumns = { group = "ch.jalu", name = "datasourcecolumns", version.ref = "datasourcecolumns" } +postgresql = { group = "org.postgresql", name = "postgresql", version.ref = "postgresql" } +checker-qual = { group = "org.checkerframework", name = "checker-qual", version.ref = "checker-qual" } +universalscheduler = { group = "com.github.Anon8281", name = "UniversalScheduler", version.ref = "universalscheduler" } +sqlite-jdbc = { group = "org.xerial", name = "sqlite-jdbc", version.ref = "sqlite-jdbc" } +h2 = { group = "com.h2database", name = "h2", version.ref = "h2" } \ No newline at end of file