Paper/patches/api/0001-Convert-project-to-Gradle.patch
Jason Penilla 672c5365f4
Write API version to pom.properties for Versioning to read
Maven writes this metadata normally, but we don't use maven. Maybe should modify Versioning instead in the future, but this works just fine for now.
2021-06-12 18:28:41 -07:00

90 lines
2.7 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Kyle Wood <demonwav@gmail.com>
Date: Thu, 10 Dec 2020 20:50:33 -0800
Subject: [PATCH] Convert project to Gradle
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..f3dd92e136a71aa39e422de7b2c5f2f3fdec554e
--- /dev/null
+++ b/build.gradle.kts
@@ -0,0 +1,67 @@
+import java.util.Locale
+
+plugins {
+ `java-library`
+ checkstyle
+}
+
+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.29")
+
+ 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")
+
+ checkstyle("com.puppycrawl.tools:checkstyle:8.39")
+}
+
+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<Javadoc>().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/"
+ )
+}
+
+checkstyle {
+ configFile = file("checkstyle.xml")
+ sourceSets = listOf(project.sourceSets.main.get(), project.sourceSets.test.get())
+}