buildscript { repositories { mavenCentral() maven { name = "forge" url = "http://files.minecraftforge.net/maven" } } dependencies { classpath 'net.minecraftforge.gradle:ForgeGradle:1.0-SNAPSHOT' } } apply plugin: 'forge' apply plugin: 'maven' apply plugin: 'maven-publish' ext.buildProps = file "build.properties" buildProps.withReader { def prop = new Properties() prop.load(it) ext.config = new ConfigSlurper().parse prop } group = "icbm" archivesBaseName = "ICBM" minecraft { version = "${rootProject.config.version.minecraft}-${rootProject.config.version.forge}" replaceIn "Reference.java" replace "@MAJOR@", rootProject.config.version.mod.major replace "@MINOR@", rootProject.config.version.mod.minor replace "@REVIS@", rootProject.config.version.mod.revis replace "@BUILD@", "${System.getenv().BUILD_NUMBER}" } subprojects*.apply plugin: 'java' allprojects { version = "${config.version.mod.major}.${config.version.mod.minor}.${config.version.mod.revis}" if (System.getenv("BUILD_NUMBER") != null) version += ".${System.getenv("BUILD_NUMBER")}" repositories { maven { name 'Calclavia Maven' url 'http://calclavia.com/maven' } maven { name = "forge" url = "http://files.minecraftforge.net/maven" } ivy { name 'FMP' artifactPattern "http://files.minecraftforge.net/[module]/[module]-dev-[revision].[ext]" } ivy { artifactPattern "http://www.chickenbones.craftsaddle.org/Files/New_Versions/1.6.4/[module]-dev%20[revision].[ext]" } mavenCentral() } dependencies { compile group: 'universalelectricity', name: 'Universal-Electricity', version: "${rootProject.config.version.universalelectricity}", classifier: "dev" compile group: 'calclaviacore', name: 'calclavia-core', version: "${rootProject.config.version.calclaviacore}", classifier: "dev" compile name: 'CodeChickenLib', version: "${config.version.minecraft}-${config.version.cclib}", ext: 'jar' compile name: 'ForgeMultipart', version: "${config.version.minecraft}-${config.version.fmp}", ext: 'jar' compile name: 'NotEnoughItems', version: "${config.version.nei}", ext: 'jar' } jar { classifier = project.name dependsOn ":copyBuildXml" destinationDir = file (rootProject.getRootDir().getPath() + '/output') } publishing { publications { mavenJava(MavenPublication) { artifact jar } } repositories { maven { url "file://var/www/maven" } } } } subprojects { archivesBaseName = "ICBM" dependencies { compile rootProject } rootProject.tasks.reobf { reobf(tasks.jar) { spec -> spec.classpath = sourceSets.main.compileClasspath } } } processResources { from 'build.properties' } task copyBuildXml(type: Copy) { from 'build.properties' into 'output' } task apiZip(type: Zip) { classifier = 'api' from sourceSets*.allSource include 'icbm/api/**' destinationDir = file 'output' } artifacts { archives apiZip } import net.minecraftforge.gradle.tasks.dev.ChangelogTask import net.minecraftforge.gradle.common.Constants import net.minecraftforge.gradle.delayed.* task createChangelog(type: ChangelogTask) { def jobName = "${System.getenv().JOB_NAME}" def buildNumber = "${System.getenv().BUILD_NUMBER}" setServerRoot(new DelayedString(project, 'http://ci.calclavia.com/')) setJobName(new DelayedString(project, jobName.toString())); setAuthName(new DelayedString(project, 'console_script')); setAuthPassword(new DelayedString(project, '625d2ac53190be3422faa0c474fb299b')); setTargetBuild({buildNumber.toString()}); setOutput(new DelayedFile(project, 'output/' + jobName + "-${project.version}" + '-changelog' + '.txt')); } build.dependsOn "apiZip", "copyBuildXml", "createChangelog"