diff options
Diffstat (limited to 'build.gradle')
-rw-r--r-- | build.gradle | 70 |
1 files changed, 46 insertions, 24 deletions
diff --git a/build.gradle b/build.gradle index 2a4a0af2..a711062e 100644 --- a/build.gradle +++ b/build.gradle @@ -1,27 +1,33 @@ plugins { - id 'fabric-loom' version '0.5-SNAPSHOT' + id 'fabric-loom' version '0.6-SNAPSHOT' id 'maven-publish' } -group = project.maven_group -version = project.mod_version +sourceCompatibility = JavaVersion.VERSION_1_8 +targetCompatibility = JavaVersion.VERSION_1_8 + archivesBaseName = project.archives_base_name +version = project.mod_version +group = project.maven_group repositories { - jcenter() - maven { - url "https://maven.falseresync.ru" + // Add repositories to retrieve artifacts from in here. + // You should only use this when depending on other mods because + // Loom adds the essential maven repositories to download Minecraft and libraries from automatically. + // See https://docs.gradle.org/current/userguide/declaring_repositories.html + // for more information about repositories. + flatDir { + dirs 'libs' } } dependencies { + implementation 'com.google.code.gson:gson:2.8.6' + // 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}" - // Fabric API - modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_api_version}" - // Cloth API include "me.shedaniel.cloth:config-2:${project.cloth_api_version}" modApi("me.shedaniel.cloth:config-2:${project.cloth_api_version}") { @@ -36,29 +42,42 @@ dependencies { // Mod Menu modImplementation "io.github.prospector:modmenu:${project.mod_menu_version}" -} -tasks.withType(JavaCompile) { - options.encoding = "UTF-8" + // Fabric API. This is technically optional, but you probably want it anyway. + modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" + + // PSA: Some older mods, compiled on Loom 0.2.1, might have outdated Maven POMs. + // You may need to force-disable transitiveness on them. } processResources { inputs.property "version", project.version - from(sourceSets.main.resources.srcDirs) { - include "fabric.mod.json" + filesMatching("fabric.mod.json") { expand "version": project.version } +} - from(sourceSets.main.resources.srcDirs) { - exclude "fabric.mod.json" +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 } } java { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 - + // 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() } @@ -68,13 +87,12 @@ jar { } } +// configure the maven publication publishing { publications { mavenJava(MavenPublication) { - artifact(jar) { - builtBy remapJar - } - artifact("${project.buildDir.absolutePath}/libs/${archivesBaseName}-${project.version}.jar"){ + // add all the jars that should be included when publishing to maven + artifact(remapJar) { builtBy remapJar } artifact(sourcesJar) { @@ -83,7 +101,11 @@ publishing { } } + // See https://docs.gradle.org/current/userguide/publishing_maven.html for information on how to set up publishing. repositories { - + // Add repositories to publish to here. + // Notice: This block does NOT have the same function as the block in the top level. + // The repositories here will be used for publishing your artifact, not for + // retrieving dependencies. } } |