buildscript { repositories { maven { name = "central" url = "https://maven.thorfusion.com/artifactory/central/" } } dependencies { classpath ('com.anatawa12.forge:ForgeGradle:1.2-1.0.+') { changing = true } classpath "org.jfrog.buildinfo:build-info-extractor-gradle:latest.release" } } plugins { id 'java-library' } apply plugin: 'forge' apply plugin: 'idea' apply plugin: 'java' apply plugin: "com.jfrog.artifactory" apply plugin: "maven-publish" apply plugin: "maven" defaultTasks 'fullBuild' repositories { maven { name 'central' url 'https://maven.thorfusion.com/artifactory/central/' } } idea { module { // For some reason this is necessary for IDEA 2014 workspaces to recognize assets inheritOutputDirs = true } } // Define properties file ext.configFile = file "build.properties" configFile.withReader { // Load config. It shall from now be referenced as simply config or project.config def prop = new Properties() prop.load(it) project.ext.config = new ConfigSlurper().parse prop } dependencies { compile "codechicken:CodeChickenLib:${config.minecraft_version}-${config.CCLIB_version}:dev" compile "codechicken:ForgeMultipart:${config.minecraft_version}-${config.FMP_version}:dev" compile "codechicken:NotEnoughItems:${config.minecraft_version}-${config.NEI_version}:dev" compile "codechicken:CodeChickenCore:${config.minecraft_version}-${config.CCC_version}:dev" compile "inventorytweaks:inventory-tweaks:1.7.10-1.60.0:api" compile "net.industrial-craft:industrialcraft-2:2.2.828-experimental:api" compile "mcp.mobius.waila:Waila:1.5.10_1.7.10:dev" } version = "${config.minecraft_version}-${config.mod_version}" group= "mekanism" archivesBaseName = "Mekanism-1.7.10-Community-Edition" libsDirName = "../output" distsDirName = "../output" sourceCompatibility = '1.8' targetCompatibility = '1.8' minecraft { version = config.minecraft_version + "-" + config.forge_version replaceIn "mekanism/common/Mekanism.java" replaceIn "mekanism/generators/common/MekanismGenerators.java" replaceIn "mekanism/tools/common/MekanismTools.java" replace "GRADLE_MODVERSION", config.mod_version replace "GRADLE_VERSIONMOD", config.alt_version } processResources { // copy everything else, thats not the mcmod.info from(sourceSets.main.resources.srcDirs) { exclude 'mcmod.info' exclude '**/*.blend*' } } task coreJar(type: Jar) { classifier = 'Core' manifest { attributes 'FMLCorePlugin': 'mekanism.common.asm.LoadingHook' attributes 'FMLCorePluginContainsFMLMod': 'true' } from('etc/core') { include '*.info' expand 'version': config.mod_version, 'mc_version': config.minecraft_version, 'fmp_version': config.FMP_version } from zipTree(jar.outputs.getFiles().getSingleFile()).matching { exclude 'mekanism/tools/**', 'mekanism/generators/**', 'mcmod.info' } } task alltJar(type: Jar) { classifier = 'ALL' manifest { attributes 'FMLCorePlugin': 'mekanism.common.asm.LoadingHook' attributes 'FMLCorePluginContainsFMLMod': 'true' } from('etc/all') { include '*.info' expand 'version': config.mod_version, 'mc_version': config.minecraft_version, 'fmp_version': config.FMP_version } from zipTree(jar.outputs.getFiles().getSingleFile()).matching { exclude 'mcmod.info' } } task toolsJar(type: Jar) { classifier = 'Tools' from('etc/tools') { include '*.info' expand 'version':config.mod_version,'mc_version':config.minecraft_version,'fmp_version':config.FMP_version } from zipTree(jar.outputs.getFiles().getSingleFile()).matching { include 'mekanism/tools/**' exclude 'mcmod.info' } } task generatorsJar(type: Jar) { classifier = 'Generators' from('etc/generators') { include '*.info' expand 'version':config.mod_version,'mc_version':config.minecraft_version,'fmp_version':config.FMP_version } from zipTree(jar.outputs.getFiles().getSingleFile()).matching { include 'mekanism/generators/**' exclude 'mcmod.info' } } coreJar.dependsOn('reobf') toolsJar.dependsOn('reobf') generatorsJar.dependsOn('reobf') alltJar.dependsOn('reobf') task MDKZip(type: Zip) { classifier = 'MDK' from sourceSets.main.java.srcDirs include 'mekanism/api/**' } task apiJar(type: Jar) { classifier = 'API' dependsOn processResources from sourceSets.main.java.srcDirs from sourceSets.main.output include 'mekanism/api/**' } task fullBuild(type: Delete) { delete jar } fullBuild.dependsOn('toolsJar', 'coreJar', 'generatorsJar', 'MDKZip', 'alltJar', 'apiJar') artifactory { contextUrl = System.getenv("MAVEN_URL") publish { repository { repoKey = 'thorfusion' username = System.getenv("MAVEN_USERNAME") password = System.getenv("MAVEN_PASSWORD") maven = true } defaults { publications('mavenJava') } publishBuildInfo = false publishArtifacts = true publishPom = true } resolve { repository { repoKey = 'central' username = System.getenv("MAVEN_USERNAME") password = System.getenv("MAVEN_PASSWORD") maven = true } } } publishing { publications { mavenJava(MavenPublication) { artifactId = rootProject.name groupId = project.group version = project.version artifacts = [toolsJar, coreJar, generatorsJar, MDKZip, alltJar, apiJar] components.java.withVariantsFromConfiguration(configurations.runtimeElements) { skip() } pom { name.set("Mekanism 1.7.10 Community Edition") description.set('Mekanism is a Minecraft add-on featuring high-tech machinery that can be used to create powerful tools, armor, and weapons.') url.set('https://aidancbrady.com/mekanism/') issueManagement { system.set('github') url.set('https://github.com/Thorfusion/Mekanism-1.7.10-Community-Edition/issues') } licenses { license { name.set('CC BY-NC-SA 4.0') distribution.set('repo') } } } } } }