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' classpath 'org.ajoberstar:gradle-git:0.10.1' } } apply plugin: 'forge' apply plugin: 'maven-publish' apply plugin: 'curseforge' import org.ajoberstar.grgit.Grgit def repo = Grgit.open(project.file('.')) project.ext.gitHash = repo.log().find().abbreviatedId boolean dev = project.hasProperty('chisel_dev') && project.chisel_dev.equalsIgnoreCase('true') ext.buildnumber = 0 project.buildnumber = System.getenv('BUILD_NUMBER') != null ? System.getenv('BUILD_NUMBER') : project.ext.gitHash version = "${mod_version}.${buildnumber}" group = "com.cricketcraft.chisel" // http://maven.apache.org/guides/mini/guide-naming-conventions.html archivesBaseName = dev ? "Chisel2_DEV" : "Chisel2" minecraft { version = "${minecraft_version}-${forge_version}" runDir = "run" replaceIn "Chisel.java" replace "@VERSION@", project.version } repositories { maven { name 'Chicken Bones Repo' url "http://chickenbones.net/maven/" } maven { name 'Prof Mobius Repo' url "http://mobiusstrip.eu/maven" } } dependencies { compile "mcp.mobius.waila:Waila:${waila_version}_${minecraft_version}:dev" compile "codechicken:CodeChickenLib:${minecraft_version}-${ccl_version}:dev" compile "codechicken:CodeChickenCore:${minecraft_version}-${ccc_version}:dev" compile "codechicken:NotEnoughItems:${minecraft_version}-${nei_version}:dev" compile "codechicken:ForgeMultipart:${minecraft_version}-${fmp_version}:dev" } 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' } } // Create deobf dev jars task deobfJar(type: Jar) { from sourceSets.main.output classifier = 'deobf' } // Create API jar with sources and compiled files task apiJar(type: Jar) { from sourceSets.main.allSource from sourceSets.main.output include 'com/cricketcraft/chisel/api/**/*' classifier = 'api' } // Create source attachment for dev jar task sourcesJar(type: Jar) { from sourceSets.main.allJava classifier = 'sources' } artifacts { archives deobfJar archives sourcesJar archives apiJar } publishing { tasks.publish.dependsOn 'build' publications { mavenJava(MavenPublication) { artifact jar artifact deobfJar artifact sourcesJar artifact apiJar } } repositories { String prop = dev ? "chisel_dev_mavendir" : "chisel_mavendir" if (project.hasProperty(prop)) { maven { url project.getProperty(prop) } } } } println('Changelog:\n' + getChangelogText()) String getChangelogText() { def changelogFile = new File('changelog') String str = '' int lineCount = 0 boolean done = false changelogFile.eachLine { if (done || it == null) { return } if (it.size() > 1) { def temp = "$it" + (lineCount == 0 ? '\n\n' : '\n') str += (it.startsWith('-') ? '' : '\n') + "$temp" lineCount++ return } else { done = true } } return str } curse { dependsOn 'reobf' onlyIf { return project.hasProperty('chisel_curseforge_key') && System.getenv("CURSE") != null && System.getenv("CURSE").equalsIgnoreCase("true") } if (project.hasProperty('chisel_curseforge_key')) apiKey = project.chisel_curseforge_key projectId = project.projectId changelog = System.getenv("CHANGELOG").equals("none") ? getChangelogText() : System.getenv("CHANGELOG") releaseType = 'release' displayName = "Chisel 2 - ${mod_version}" additionalArtifact deobfJar, sourcesJar, apiJar }