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 = "run" } configurations { provided embedded compile.extendsFrom provided, embedded } repositories { maven { name 'Forge' url 'https://maven.minecraftforge.net/releases/' } 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/" } maven { url = "https://jitpack.io" } } dependencies { 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 } compileOnly("com.github.SinTh0r4s:VisualProspecting:${config.visualprospecting.version}") { transitive = false } } 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 } // Textures in debug mode. :rage: sourceSets { main { output.resourcesDir = output.classesDir } } 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' } }