|
|
|
plugins {
|
|
|
|
id 'fabric-loom' version '0.5-SNAPSHOT'
|
|
|
|
id 'maven-publish'
|
|
|
|
}
|
|
|
|
|
|
|
|
archivesBaseName = project.archives_base_name
|
|
|
|
version = project.mod_version
|
|
|
|
group = project.maven_group
|
|
|
|
|
|
|
|
dependencies {
|
|
|
|
// 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. 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
|
|
|
|
|
|
|
|
filesMatching("fabric.mod.json") {
|
|
|
|
expand "version": project.version
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
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 = JavaVersion.VERSION_1_8
|
|
|
|
if (JavaVersion.current().isJava9Compatible()) {
|
|
|
|
it.options.release = targetVersion.ordinal() + 1
|
|
|
|
} else {
|
|
|
|
it.sourceCompatibility = targetVersion
|
|
|
|
it.targetCompatibility = targetVersion
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
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") {
|
|
|
|
rename { "${it}_${project.name}"}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// configure the maven publication
|
|
|
|
publishing {
|
|
|
|
publications {
|
|
|
|
mavenJava(MavenPublication) {
|
|
|
|
// add all the jars that should be included when publishing to maven
|
|
|
|
artifact(remapJar) {
|
|
|
|
builtBy remapJar
|
|
|
|
}
|
|
|
|
artifact(sourcesJar) {
|
|
|
|
builtBy remapSourcesJar
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// select the repositories you want to publish to
|
|
|
|
// to just publish to maven local, no extra repositories are necessary. Just use the task `publishToMavenLocal`.
|
|
|
|
repositories {
|
|
|
|
// An example of a standard Nexus setup, for those wishing to publish their mod artifacts
|
|
|
|
// maven {
|
|
|
|
// if (project.version.endsWith("-SNAPSHOT")) {
|
|
|
|
// url = "https://nexus.myorganization.org/repository/maven-snapshots/"
|
|
|
|
// } else {
|
|
|
|
// url = "https://nexus.myorganization.org/repository/maven-releases/"
|
|
|
|
// }
|
|
|
|
|
|
|
|
// name = "myRepo"
|
|
|
|
// credentials(PasswordCredentials) // use the ${name}Username and ${name}Password properties for authentication
|
|
|
|
// }
|
|
|
|
}
|
|
|
|
}
|