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:1.2-SNAPSHOT' } } apply plugin: 'java' apply plugin: 'forge' //apply plugin: 'idea' //idea.module.inheritOutputDirs = true file "build.properties" withReader { def prop = new Properties() prop.load(it) ext.config = new ConfigSlurper().parse prop } sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 sourceCompatibility = 1.8 targetCompatibility = 1.8 compileJava.options.encoding = 'UTF-8' version = "${config.detravscanner.version}" group= "com.detrav.detravscannermod" // http://maven.apache.org/guides/mini/guide-naming-conventions.html archivesBaseName = "GT Scanner Mod" minecraft { version = "${config.minecraft.version}-${config.forge.version}" runDir = "eclipse" } configurations { provided embedded compile.extendsFrom provided, embedded } repositories { maven { name 'Forge' url 'http://files.minecraftforge.net/maven' } maven { name = "chickenbones" url = "http://chickenbones.net/maven/" } maven { name = "ic2, forestry" url = "http://maven.ic2.player.to/" } maven { // EnderIO & EnderCore name 'tterrag Repo' url "http://maven.tterrag.com" } maven { // AppleCore url "http://www.ryanliptak.com/maven/" } //ivy { // name "BuildCraft" // artifactPattern "http://www.mod-buildcraft.com/releases/BuildCraft/[revision]/[module]-[revision]-[classifier].[ext]" //} //ivy { // name 'CoFHLib' // artifactPattern "http://addons-origin.cursecdn.com/files/${config.cofhlib.cf}/[module]-[revision].[ext]" //} //ivy { // name 'CoFHCore' // artifactPattern "http://addons-origin.cursecdn.com/files/${config.cofhcore.cf}/[module]-[revision].[ext]" //} //ivy { // name 'Railcraft' // artifactPattern "http://addons-origin.cursecdn.com/files/${config.railcraft.cf}/[module]_[revision].[ext]" //} //ivy { // name 'IC2NuclearControl' // artifactPattern "http://addons-origin.cursecdn.com/files/${config.nc.cf}/[module]-[revision].[ext]" //} } dependencies { // provided ("appeng:appliedenergistics2:${config.ae2.version}:dev") { // exclude module: '*' // } provided "codechicken:CodeChickenLib:${config.minecraft.version}-${config.codechickenlib.version}:dev" provided "codechicken:CodeChickenCore:${config.minecraft.version}-${config.codechickencore.version}:dev" provided "codechicken:NotEnoughItems:${config.minecraft.version}-${config.nei.version}:dev" provided "net.industrial-craft:industrialcraft-2:${config.ic2.version}:dev" provided "net.sengir.forestry:forestry_${config.minecraft.version}:${config.forestry.version}:dev" provided "applecore:AppleCore:${config.applecore.version}:api" provided "com.enderio.core:EnderCore:${config.enderiocore.version}:dev" provided ("com.enderio:EnderIO:${config.enderio.version}:dev") { transitive = false } // provided name: 'buildcraft', version: config.buildcraft.version, classifier: "dev", ext: 'jar' // provided name: 'CoFHLib', version: config.cofhlib.version, ext: 'jar' // provided name: 'CoFHCore', version: config.cofhcore.version, ext: 'jar' // provided name: 'Railcraft', version: config.railcraft.version, ext: 'jar' // provided name: 'IC2NuclearControl', version: config.nc.version, ext: 'jar' } task devJar(type: Jar) { from sourceSets.main.output classifier = 'dev' } task generateDebugJar(type: Copy) { from sourceSets.main.allSource into "$buildDir/debugjarsrc/java" filter { line -> line.replaceAll('@false', '@true') } } task compileDebugJar(type: JavaCompile, dependsOn: generateDebugJar){ source = file("$buildDir/debugjarsrc") classpath = sourceSets.main.compileClasspath destinationDir = file("$buildDir/debugjarCompiled") } task copyResources(type: Copy,dependsOn: compileDebugJar){ from sourceSets.main.resources into "$buildDir/debugjarCompiled" } task debugJar(type: Jar, dependsOn: copyResources) { from "$buildDir/debugjarCompiled" classifier = 'dev-debug' } artifacts { archives devJar archives debugJar } processResources { // this will ensure that this task is redone when the versions change. inputs.property "version", project.version inputs.property "mcversion", project.minecraft.version ext.srcFiles = "$projectDir/src/main/resources" ext.destDir = "$projectDir/build/classes/main" // registering inputs & outputs allow gradle to skip if UP-TO-DATE inputs.files srcFiles outputs.dir destDir println 'starting processResources' println 'srcFiles: ' + srcFiles println 'destDir: ' + destDir copy { // replace stuff in mcmod.info, nothing else from(srcFiles) into(destDir) include 'mcmod.info' // replace version and mcversion expand 'version': project.version, 'mcversion': project.minecraft.version } copy { // copy everything else, thats not the mcmod.info from(srcFiles) into(destDir) exclude 'mcmod.info' } }