buildscript { repositories { mavenCentral() maven { name = "forge" url = "http://files.minecraftforge.net/maven" } maven { name = "sonatype" url = "https://oss.sonatype.org/content/repositories/snapshots/" } } dependencies { classpath 'net.minecraftforge.gradle:ForgeGradle:2.1-SNAPSHOT' } } apply plugin: 'net.minecraftforge.gradle.forge' apply plugin: 'maven' apply plugin: 'maven-publish' sourceCompatibility = 1.8 targetCompatibility = 1.8 repositories { maven { name = "Modmuss50" url = "http://maven.modmuss50.me/" } maven { name "TiC" url "http://dvs1.progwml6.com/files/maven" } maven { name = "Amadornes" url "http://maven.amadornes.com/" } } configurations { shade compile.extendsFrom shade } version = "1.0.4" def ENV = System.getenv() if (ENV.BUILD_NUMBER) { version = version + "." + "${System.getenv().BUILD_NUMBER}" } minecraft { version = "1.9-12.16.0.1832-1.9" mappings = "snapshot_20160316" replace "@MODVERSION@", project.version // makeObfSourceJar = false useDepAts = true runDir = "run" } group = 'TechReborn' def grabDep(name, url){ ant.get(src: url, dest: 'dep') file("dep/" + url.substring(url.lastIndexOf("/"))).renameTo(file("dep/" + name + ".jar")) } dependencies { def f = new File('dep/') if(f.exists()){ f.delete() } f.mkdirs() if(!f.exists()){ f.mkdir() } compile 'RebornCore:RebornCore-1.9:2.0.4.+:dev' deobfCompile "mezz.jei:jei_1.9:3.2.5.+" deobfCompile 'MCMultiPart:MCMultiPart-experimental:1.1.0_55:universal' } processResources { // this will ensure that this task is redone when the versions change. inputs.property "version", project.version inputs.property "mcversion", project.minecraft.version // replace stuff in mcmod.info, nothing else from(sourceSets.main.resources.srcDirs) { include 'mcmod.info' // replace version and mcversion expand 'version':project.version, 'mcversion':project.minecraft.version } // copy everything else, thats not the mcmod.info from(sourceSets.main.resources.srcDirs) { exclude 'mcmod.info' } } task deobfJar(type: Jar) { from sourceSets.main.output exclude "**/*.psd" classifier = 'dev' } jar { exclude "**/*.psd" classifier = 'universal' // configurations.shade.each { dep -> // from(project.zipTree(dep)){ // include 'ic2/api/' // include 'forestry/api/fuels/' // exclude 'META-INF', 'META-INF/**', '**/*.java' // } // } } task apiJar(type: Jar) { from sourceSets.main.allSource from sourceSets.main.output include 'techreborn/api/**/*' classifier = "api" } apiJar.mustRunAfter deobfJar artifacts { archives deobfJar archives apiJar } build.dependsOn deobfJar, apiJar uploadArchives { repositories { mavenDeployer { //This is used when the build is done on a slave node if (project.hasProperty('mavenPass')) { println 'Uploading to remote Maven Repo' repository(url: "http://mavenupload.modmuss50.me/") { authentication(userName: "buildslave", password: project.getProperty('mavenPass')) } } else { //this is when the build is executed on the master node println 'Uploading to local Maven Repo' repository(url: "file:///var/www/maven/") } pom { groupId = "TechReborn" version = project.version artifactId = project.archivesBaseName project { name project.archivesBaseName packaging 'jar' description 'TechReborn' url 'https://github.com/TechReborn/TechReborn' scm { url 'https://github.com/TechReborn/TechReborn' connection 'scm:git:git@github.com:TechReborn/TechReborn.git' developerConnection 'scm:git:git@github.com:TechReborn/TechReborn.git' } issueManagement { system 'github' url 'https://github.com/TechReborn/TechReborn/issues' } licenses { license { name 'License' url 'https://raw.githubusercontent.com/TechReborn/TechReborn/master/LICENSE.md' distribution 'repo' } } developers { developer { id 'modmuss50' name 'modmuss50' roles { role 'developer' } } developer { id 'Gigabit101' name 'Gigabit101' roles { role 'developer' } } } } } } } } task wrapper(type: Wrapper) { //To update the wrapper change the version bellow then run: gradle wrapper gradleVersion = '2.9' }