plugins { id 'java' id 'groovy' id 'maven' id 'maven-publish' id 'idea' id 'eclipse' } sourceCompatibility = 1.8 targetCompatibility = 1.8 group = 'com.openmodloader' archivesBaseName = project.name version = '0.0.9-SNAPSHOT' repositories { mavenCentral() maven { name = 'fabric' url = 'http://maven.fabricmc.net/' } maven { name "Modmuss" url 'http://maven.modmuss50.me/' } maven { name = 'Mojang' url = 'https://libraries.minecraft.net/' } maven { name = 'SpongePowered' url = 'http://repo.spongepowered.org/maven' } } configurations { deployerJars shade compile.extendsFrom shade } dependencies { compile gradleApi() shade 'org.zeroturnaround:zt-zip:1.9' shade 'org.slf4j:slf4j-api:1.7.21' shade 'org.slf4j:slf4j-simple:1.7.21' shade 'com.google.code.gson:gson:2.6.2' shade 'commons-io:commons-io:1.4' shade 'com.google.guava:guava:19.0' shade ('net.fabricmc:weave:0.1.0.+'){ transitive = false } shade 'org.ow2.asm:asm-debug-all:5.2' shade 'cuchaz:enigma:0.11.0.33:lib' shade 'net.fabricmc:tiny-remapper:+' shade 'net.sf.jopt-simple:jopt-simple:5.0.4' shade 'org.apache.logging.log4j:log4j-api:2.11.0' shade 'org.apache.logging.log4j:log4j-core:2.11.0' shade ('net.minecraft:launchwrapper:1.12') { transitive = false } //Always fun when your dep needs the tool to build, but the tool needs the dep. //compile 'net.fabricmc:fabric-base:16w38a-0.0.4-SNAPSHOT' shade('org.spongepowered:mixin:0.7.8-SNAPSHOT') { exclude module: 'launchwrapper' exclude module: 'guava' } shade 'org.apache.commons:commons-lang3:3.5' } 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' } } task wrapper(type: Wrapper) { gradleVersion = '4.7' } publishing { publications { maven(MavenPublication) { groupId 'OpenGradle' 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') } } } } }