From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Kyle Wood Date: Thu, 10 Dec 2020 20:50:33 -0800 Subject: [PATCH] Convert project to Gradle The pom.xml file is deleted in this patch so the patch will fail to apply if there are changes made to it from upstream - thus notifying us that changes were made. diff --git a/.gitignore b/.gitignore index e431e3435737e28394d81b56568a08b3c3148b9b..c484aff2c192bf42059b5689327909e4af654401 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +.gradle/ + # Eclipse stuff /.classpath /.project diff --git a/build.gradle.kts b/build.gradle.kts new file mode 100644 index 0000000000000000000000000000000000000000..e74ac6187426c9468e551e9d068d05534e2ad6fe --- /dev/null +++ b/build.gradle.kts @@ -0,0 +1,67 @@ +import java.util.Locale + +plugins { + `java-library` + `maven-publish` +} + +java { + withSourcesJar() + withJavadocJar() +} + +dependencies { + // api dependencies are listed transitively to API consumers + api("commons-lang:commons-lang:2.6") + api("com.google.guava:guava:21.0") + api("com.google.code.gson:gson:2.8.0") + api("net.md-5:bungeecord-chat:1.16-R0.4") + api("org.yaml:snakeyaml:1.28") + + compileOnly("org.apache.maven:maven-resolver-provider:3.8.1") + compileOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.7.0") + compileOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.7.0") + + val annotations = "org.jetbrains:annotations-java5:21.0.1" + compileOnly(annotations) + testCompileOnly(annotations) + + testImplementation("junit:junit:4.13.1") + testImplementation("org.hamcrest:hamcrest-library:1.3") + testImplementation("org.ow2.asm:asm-tree:9.1") +} + +configure { + publications.create("maven") { + artifactId = project.name.toLowerCase(Locale.ENGLISH) + from(components["java"]) + } +} + +val generateApiVersioningFile by tasks.registering { + val pomProps = layout.buildDirectory.file("pom.properties") + outputs.file(pomProps) + doLast { + pomProps.get().asFile.writeText("version=${project.version}") + } +} + +tasks.jar { + from(generateApiVersioningFile.map { it.outputs.files.singleFile }) { + into("META-INF/maven/${project.group}/${project.name.toLowerCase(Locale.ENGLISH)}") + } + manifest { + attributes += mapOf( + "Automatic-Module-Name" to "org.bukkit" + ) + } +} + +tasks.withType().configureEach { + (options as StandardJavadocDocletOptions).links( + "https://guava.dev/releases/21.0/api/docs/", + "https://javadoc.io/doc/org.yaml/snakeyaml/1.27/", + "https://javadoc.io/doc/org.jetbrains/annotations-java5/20.1.0/", + "https://javadoc.io/doc/net.md-5/bungeecord-chat/1.16-R0.4/" + ) +} diff --git a/pom.xml b/pom.xml deleted file mode 100644 index 10eeaef61be733e63f6680f1675e0b527eb30fd9..0000000000000000000000000000000000000000 --- a/pom.xml +++ /dev/null @@ -1,262 +0,0 @@ - - - 4.0.0 - - org.spigotmc - spigot-api - 1.17-R0.1-SNAPSHOT - jar - - Spigot-API - https://www.spigotmc.org/ - An enhanced plugin API for Minecraft servers. - - - true - 1.8 - 1.8 - UTF-8 - - - - - spigotmc-releases - https://hub.spigotmc.org/nexus/content/repositories/releases/ - - - spigotmc-snapshots - https://hub.spigotmc.org/nexus/content/repositories/snapshots/ - - - - - - commons-lang - commons-lang - 2.6 - compile - - - - com.google.guava - guava - 21.0 - compile - - - - com.google.code.gson - gson - 2.8.0 - compile - - - net.md-5 - bungeecord-chat - 1.16-R0.4 - jar - compile - - - org.yaml - snakeyaml - 1.28 - compile - - - - org.apache.maven - maven-resolver-provider - 3.8.1 - provided - - - org.apache.maven.resolver - maven-resolver-connector-basic - 1.7.0 - provided - - - org.apache.maven.resolver - maven-resolver-transport-http - 1.7.0 - provided - - - - org.jetbrains - annotations-java5 - 21.0.1 - provided - - - - junit - junit - 4.13.1 - test - - - org.hamcrest - hamcrest-library - 1.3 - test - - - org.ow2.asm - asm-tree - 9.1 - test - - - - - - - net.md-5 - scriptus - 0.4.1 - - - initialize - - describe - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 3.8.1 - - - eclipse - - - - org.codehaus.plexus - plexus-compiler-eclipse - 2.8.8 - - - org.eclipse.jdt - ecj - 3.24.0 - - - - - org.apache.maven.plugins - maven-jar-plugin - 3.2.0 - - - - false - - - org.bukkit - - - - - - org.apache.maven.plugins - maven-shade-plugin - 3.2.3 - - - package - - shade - - - - - - - *:* - - META-INF/MANIFEST.MF - - - - - true - - - - org.apache.maven.plugins - maven-javadoc-plugin - 3.2.0 - - - https://guava.dev/releases/21.0/api/docs/ - https://javadoc.io/doc/org.yaml/snakeyaml/1.27/ - https://javadoc.io/doc/org.jetbrains/annotations-java5/20.1.0/ - https://javadoc.io/doc/net.md-5/bungeecord-chat/1.16-R0.4/ - - - - - - - - - development - - false - - - - - org.apache.maven.plugins - maven-checkstyle-plugin - 3.1.1 - - - process-classes - - check - - - - - checkstyle.xml - true - - - - com.puppycrawl.tools - checkstyle - 8.39 - - - - - org.codehaus.mojo - animal-sniffer-maven-plugin - 1.19 - - - process-classes - - check - - - - - - org.codehaus.mojo.signature - java18 - 1.0 - - - - - - - -