plugins { id 'java' id 'groovy' id 'maven' id 'maven-publish' id 'idea' id 'eclipse' } sourceCompatibility = 1.8 targetCompatibility = 1.8 group = 'net.fabricmc' archivesBaseName = project.name version = '0.0.12-SNAPSHOT' repositories { mavenCentral() maven { name "Modmuss" url 'http://maven.modmuss50.me/' } maven { name = 'Mojang' url = 'https://libraries.minecraft.net/' } maven { name = 'Forge' //For ModLauncher url = 'http://files.minecraftforge.net/maven/' } maven { name = 'SpongePowered' url = 'http://repo.spongepowered.org/maven' } } configurations { deployerJars shade compile.extendsFrom shade } dependencies { compile gradleApi() shade 'org.zeroturnaround:zt-zip:1.13' shade 'org.slf4j:slf4j-api:1.7.25' shade 'org.slf4j:slf4j-simple:1.7.25' shade 'com.google.code.gson:gson:2.8.5' shade 'commons-io:commons-io:2.6' shade 'org.apache.commons:commons-lang3:3.8.1' shade 'com.google.guava:guava:23.0' shade ('net.fabricmc:weave:+'){ transitive = false } shade ('cuchaz:enigma:0.12.0.+:lib'){ exclude group: 'org.ow2.asm' } shade 'net.fabricmc:tiny-remapper:0.1.0.13' shade 'net.sf.jopt-simple:jopt-simple:5.0.4' shade 'org.apache.logging.log4j:log4j-api:2.11.1' shade 'org.apache.logging.log4j:log4j-core:2.11.1' shade ('net.minecraft:launchwrapper:1.12') { transitive = false } shade('org.spongepowered:mixin:0.7.11-SNAPSHOT') { exclude module: 'launchwrapper' exclude module: 'guava' } } sourceSets { main.compileClasspath += configurations.shade; main.runtimeClasspath += configurations.shade; test.compileClasspath += configurations.shade; test.runtimeClasspath += configurations.shade; } jar { duplicatesStrategy = DuplicatesStrategy.EXCLUDE from (configurations.shade.collect { it.isDirectory() ? it : zipTree(it) }) { exclude 'META-INF/*' exclude 'META-INF' } } apply from: 'https://github.com/FabricMC/fabric-docs/raw/master/gradle/license.gradle' task wrapper(type: Wrapper) { gradleVersion = '4.10.2' } publishing { publications { maven(MavenPublication) { groupId project.group artifactId project.archivesBaseName version project.version from components.java //Removes all of the dependencies from the maven pom, prevents sub projects downloading all the libs, as we use a fat jar pom.withXml { asNode().remove(asNode().get('dependencies')) } } } repositories { maven { url "http://mavenupload.modmuss50.me/" if (project.hasProperty('mavenPass')) { credentials { username 'buildslave' password project.getProperty('mavenPass') } } } } }