summary refs log tree commit diff stats
path: root/build.gradle
diff options
context:
space:
mode:
authorzml <zml@aoeu.xyz>2020-11-10 14:11:54 -0800
committerGitHub <noreply@github.com>2020-11-10 22:11:54 +0000
commit90cb78d4127924ad97f23f7221c68d3d345f1358 (patch)
tree910c1e26d7b7b276c6d967a38f0233c08f0de038 /build.gradle
parent54035654b75dd756d98f89fde179cb49183a6d68 (diff)
Modernize Gradle buildscript (#71)
* Modernize gradle buildscript

* Bump yarn/loader/fabric api versions

* Add GH actions to build example mod

* Update in response to feedback
Diffstat (limited to 'build.gradle')
-rw-r--r--build.gradle48
1 files changed, 29 insertions, 19 deletions
diff --git a/build.gradle b/build.gradle
index 220d900..e619e44 100644
--- a/build.gradle
+++ b/build.gradle
@@ -3,15 +3,12 @@ plugins {
 	id 'maven-publish'
 }
 
-sourceCompatibility = JavaVersion.VERSION_1_8
-targetCompatibility = JavaVersion.VERSION_1_8
-
 archivesBaseName = project.archives_base_name
 version = project.mod_version
 group = project.maven_group
 
 dependencies {
-	//to change the versions see the gradle.properties file
+	// To change the versions see the gradle.properties file
 	minecraft "com.mojang:minecraft:${project.minecraft_version}"
 	mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2"
 	modImplementation "net.fabricmc:fabric-loader:${project.loader_version}"
@@ -31,23 +28,36 @@ processResources {
 	}
 }
 
-// ensure that the encoding is set to UTF-8, no matter what the system default is
-// this fixes some edge cases with special characters not displaying correctly
-// see http://yodaconditions.net/blog/fix-for-java-file-encoding-problems-with-gradle.html
-tasks.withType(JavaCompile) {
-	options.encoding = "UTF-8"
+tasks.withType(JavaCompile).configureEach {
+	// ensure that the encoding is set to UTF-8, no matter what the system default is
+	// this fixes some edge cases with special characters not displaying correctly
+	// see http://yodaconditions.net/blog/fix-for-java-file-encoding-problems-with-gradle.html
+	// If Javadoc is generated, this must be specified in that task too.
+	it.options.encoding = "UTF-8"
+
+	// The Minecraft launcher currently installs Java 8 for users, so your mod probably wants to target Java 8 too
+	// JDK 9 introduced a new way of specifying this that will make sure no newer classes or methods are used.
+	// We'll use that if it's available, but otherwise we'll use the older option.
+	def targetVersion = 8
+	if (JavaVersion.current().isJava9Compatible()) {
+		 it.options.release = targetVersion
+	} else {
+		 it.sourceCompatibility = JavaVersion.toVersion(targetVersion)
+		 it.targetCompatibility = JavaVersion.toVersion(targetVersion)
+	}
 }
 
-// Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task
-// if it is present.
-// If you remove this task, sources will not be generated.
-task sourcesJar(type: Jar, dependsOn: classes) {
-	classifier = "sources"
-	from sourceSets.main.allSource
+java {
+	// Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task
+	// if it is present.
+	// If you remove this line, sources will not be generated.
+	withSourcesJar()
 }
 
 jar {
-	from "LICENSE"
+	from("LICENSE") {
+		rename { "${it}_${project.archivesBaseName}"}
+	}
 }
 
 // configure the maven publication
@@ -64,9 +74,9 @@ publishing {
 		}
 	}
 
-	// select the repositories you want to publish to
+	// Select the repositories you want to publish to
+	// To publish to maven local, no extra repositories are necessary. Just use the task `publishToMavenLocal`.
 	repositories {
-		// uncomment to publish to the local maven
-		// mavenLocal()
+		// See https://docs.gradle.org/current/userguide/publishing_maven.html for information on how to set up publishing.
 	}
 }