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-publish' sourceSets { main { java { srcDirs 'src/main/java', 'archaic/src/main/java', 'electrical/src/main/java', 'mechanical/src/main/java' //exclude 'resonantinduction/core/nei/**' } } } ext.buildProps = file "build.properties" buildProps.withReader { def prop = new Properties() prop.load(it) ext.config = new ConfigSlurper().parse prop } version = "${config.version.mod.major}.${config.version.mod.minor}.${config.version.mod.revis}" group = "resonantinduction" archivesBaseName = "${System.getenv().JOB_NAME}" minecraft { version = "${config.version.minecraft}-${config.version.forge}" replaceIn "Reference.java" replace "@MAJOR@", config.version.mod.major replace "@MINOR@", config.version.mod.minor replace "@REVIS@", config.version.mod.revis replace "@BUILD@", System.getenv("BUILD_NUMBER") } if (System.getenv("BUILD_NUMBER") != null) version += ".${System.getenv("BUILD_NUMBER")}" processResources { from 'build.properties' } task copyBuildXml(type: Copy) { from 'build.properties' into 'output' } task apiZip(type: Zip) { classifier = 'api' from sourceSets*.allSource include 'resonantinduction/api/**' destinationDir = file 'output' } artifacts { archives apiZip } jar { dependsOn copyBuildXml classifier = '' destinationDir = file 'output' } repositories { maven { name 'Calclavia Maven' url 'http://calclavia.com/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]" } } dependencies { compile group: 'universalelectricity', name: 'Universal-Electricity', version: "${config.version.universalelectricity}", classifier: "dev" compile group: 'calclaviacore', name: 'calclavia-core', version: "${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' compile name: 'CodeChickenCore', version: "${config.version.cccore}", ext: 'jar' } publishing { publications { mavenJava(MavenPublication) { artifact jar /*artifact apiZip*/ artifact { file 'output/build.properties' } } } repositories { maven { url "file://var/www/maven" } } } 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}" jobName.replaceAll(' ','%20') 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 "createChangelog"