218 lines
7.2 KiB
Groovy
218 lines
7.2 KiB
Groovy
|
// DONT TOUCH THE BUILDSCTPT[] BLOCK
|
||
|
// its special, and it is only there to make forgegradle work correctly.
|
||
|
|
||
|
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.1-SNAPSHOT'
|
||
|
}
|
||
|
}
|
||
|
|
||
|
apply plugin: 'forge' // adds the forge cuntionality
|
||
|
apply plugin: 'maven' // for uploading to a mnven repo
|
||
|
|
||
|
// grab buildNumber
|
||
|
ext.buildnumber = 0 // this will be referenced as simply project.buildnumber from now on.
|
||
|
|
||
|
if (System.env.hasProperty('buildnumber'))
|
||
|
project.buildnumber = System.getenv().BUILD_NUMBER
|
||
|
else
|
||
|
logger.lifecycle "SETTING BUILDNUMBER TO 0"
|
||
|
|
||
|
version = "5.0.0"
|
||
|
group= "com.mod-buildcraft"
|
||
|
archivesBaseName = "buildcraft" // the name that all artifacts will use as a base. artifacts names follow this pattern: [baseName]-[appendix]-[version]-[classifier].[extension]
|
||
|
|
||
|
minecraft {
|
||
|
version = "1.7.2-10.12.0.1029" // McVersion-ForgeVersion this variable is later changed to contain only the MC version, while the apiVersion variable is used for the forge version. Yeah its stupid, and will be changed eentually.
|
||
|
|
||
|
assetDir = "run/assets" // the palce for FOrgegradle to download the assets. The assets that the launcher gets and stuff
|
||
|
|
||
|
// replacing stuff in the source
|
||
|
replace '@VERSION@', project.version
|
||
|
replace '@MC_VERSION@', version
|
||
|
replace '@BUILD_NUMBER@', project.buildnumber
|
||
|
}
|
||
|
|
||
|
// configure the source folders
|
||
|
sourceSets {
|
||
|
main {
|
||
|
java {
|
||
|
srcDir 'common/buildcraft'
|
||
|
// exclude 'some exclusion'
|
||
|
// include 'some inclusion'
|
||
|
}
|
||
|
resources {
|
||
|
srcDir 'buildcraft_resources'
|
||
|
// exclude 'some exclusion'
|
||
|
// include 'some inclusion'
|
||
|
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
processResources
|
||
|
{
|
||
|
// replace stuff in mcmod.info, nothing else
|
||
|
from(sourceSets.main.resources.srcDirs) {
|
||
|
include 'mcmod.info'
|
||
|
|
||
|
// replace version and mcversion
|
||
|
// ${version} and ${mcversion} are the exact strings bieng replaced
|
||
|
expand 'version':project.version, 'mcversion':project.minecraft.version, 'buildnumber':project.buildnumber
|
||
|
}
|
||
|
|
||
|
// copy everything else, thats not the mcmod.info
|
||
|
from(sourceSets.main.resources.srcDirs) {
|
||
|
exclude 'mcmod.info'
|
||
|
}
|
||
|
|
||
|
// the localization repo... this wont crash if the localization folder does not exist
|
||
|
from('../BuildCraft-Localization/lang/buildcraft') {
|
||
|
into 'build/resources/main/assets/buildcraft/lang'
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// --------------------
|
||
|
// extra jar section
|
||
|
// -------------------
|
||
|
|
||
|
// for the benfit of the jars, we will now now add the buildnumber to the jars
|
||
|
project.version += '.' + project.buildnumber
|
||
|
|
||
|
// add a source jar
|
||
|
task sourceJar(type: Jar) {
|
||
|
from sourceSets.main.allSource
|
||
|
classifier = 'sources'
|
||
|
}
|
||
|
|
||
|
// add a javadoc jar
|
||
|
task javadocJar(type: Jar, dependsOn: javadoc) {
|
||
|
classifier = 'javadoc'
|
||
|
from 'build/docs/javadoc'
|
||
|
}
|
||
|
|
||
|
// because the normal output has been made to be obfuscated
|
||
|
task deobfJar(type: Jar) {
|
||
|
from sourceSets.main.output
|
||
|
classifier = 'dev'
|
||
|
}
|
||
|
|
||
|
// make sure all of these happen when we run build
|
||
|
build.dependsOn sourceJar, javadocJar, deobfJar
|
||
|
|
||
|
// --------------------
|
||
|
// maven section
|
||
|
// -------------------
|
||
|
|
||
|
// create the deployerJars dependency configuration
|
||
|
configurations {
|
||
|
deployerJars
|
||
|
}
|
||
|
|
||
|
dependencies {
|
||
|
// dependency in deployerJars, for maven deployment. see definition in mavenDeployer{} below
|
||
|
deployerJars "org.apache.maven.wagon:wagon-ssh:2.2"
|
||
|
}
|
||
|
|
||
|
// specify artifacts to be uploaded
|
||
|
artifacts {
|
||
|
// the default jar is already here by defualt
|
||
|
archives sourceJar
|
||
|
archives javadocJar
|
||
|
archives deobfJar
|
||
|
}
|
||
|
|
||
|
uploadArchives {
|
||
|
// make sure this happens after reobfuscation
|
||
|
dependsOn 'reobf'
|
||
|
|
||
|
repositories {
|
||
|
if (project.hasProperty("filesmaven")) { // if this is the Forge server, and this stuff is defined...
|
||
|
logger.info('Publishing to files server')
|
||
|
|
||
|
mavenDeployer {
|
||
|
// specify the jars that maven needs to deploy here
|
||
|
configuration = configurations.deployerJars
|
||
|
|
||
|
// authentication, again, specially set in the forge server environment
|
||
|
repository(url: project.filesmaven.url) {
|
||
|
authentication(userName: project.filesmaven.username, privateKey: project.filesmaven.key)
|
||
|
}
|
||
|
|
||
|
// here you specify all your metadata
|
||
|
// this is the definition of the maven pom.xml. This is simply a DSL to define the XML. Not actual fields or things to set.
|
||
|
pom {
|
||
|
groupId = project.group
|
||
|
version = project.version + '.' + project.buildnumber
|
||
|
artifactId = project.archivesBaseName
|
||
|
project {
|
||
|
name project.archivesBaseName
|
||
|
packaging 'jar'
|
||
|
description 'A Minecraft mod adding all sourts of machinery'
|
||
|
url 'http://www.mod-buildcraft.com/'
|
||
|
|
||
|
scm {
|
||
|
url 'https://github.com/BuildCraft/BuildCraft'
|
||
|
connection 'scm:git:git://github.com/BuildCraft/BuildCraft.git'
|
||
|
developerConnection 'scm:git:git@github.com:BuildCraft/BuildCraft.git'
|
||
|
}
|
||
|
|
||
|
issueManagement {
|
||
|
system 'github'
|
||
|
url 'https://github.com/BuildCraft/BuildCraft/issues'
|
||
|
}
|
||
|
|
||
|
licenses {
|
||
|
license {
|
||
|
name 'Minecraft Mod Public License'
|
||
|
url 'http://www.mod-buildcraft.com/MMPL-1.0.txt'
|
||
|
distribution 'repo'
|
||
|
}
|
||
|
}
|
||
|
|
||
|
developers {
|
||
|
developer {
|
||
|
id 'SpaceToad'
|
||
|
name 'SpaceToad'
|
||
|
roles { role 'developer' }
|
||
|
}
|
||
|
developer {
|
||
|
id 'CovertJaguar'
|
||
|
name 'CovertJaguar'
|
||
|
roles { role 'developer' }
|
||
|
}
|
||
|
developer {
|
||
|
id 'SirSngir'
|
||
|
name 'SirSengir'
|
||
|
roles { role 'developer' }
|
||
|
}
|
||
|
developer {
|
||
|
id 'Krapht'
|
||
|
name 'Krapht'
|
||
|
roles { role 'developer' }
|
||
|
}
|
||
|
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
// otherwise publishing to the local repo in ~/.m2 is fine...
|
||
|
add project.repositories.mavenLocal()
|
||
|
}
|
||
|
}
|
||
|
}
|