225 lines
6.3 KiB
Groovy
225 lines
6.3 KiB
Groovy
/*
|
|
* This file is part of Applied Energistics 2.
|
|
* Copyright (c) 2013 - 2015, AlgorithmX2, All rights reserved.
|
|
*
|
|
* Applied Energistics 2 is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU Lesser General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* Applied Energistics 2 is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public License
|
|
* along with Applied Energistics 2. If not, see <http://www.gnu.org/licenses/lgpl>.
|
|
*/
|
|
|
|
buildscript {
|
|
repositories {
|
|
maven { url = 'https://files.minecraftforge.net/maven' }
|
|
maven { url = 'https://repo.spongepowered.org/maven' }
|
|
jcenter()
|
|
mavenCentral()
|
|
}
|
|
dependencies {
|
|
classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '3.+', changing: true
|
|
classpath 'org.spongepowered:mixingradle:0.7-SNAPSHOT'
|
|
}
|
|
}
|
|
|
|
plugins {
|
|
id "maven-publish"
|
|
id "com.diffplug.gradle.spotless" version "4.3.0"
|
|
id "com.matthewprenger.cursegradle" version "1.4.0"
|
|
id "org.sonarqube" version "2.8"
|
|
id "jacoco"
|
|
}
|
|
|
|
apply plugin: 'net.minecraftforge.gradle'
|
|
apply plugin: 'org.spongepowered.mixin'
|
|
apply plugin: "eclipse"
|
|
|
|
repositories {
|
|
mavenLocal()
|
|
jcenter()
|
|
mavenCentral()
|
|
}
|
|
|
|
sourceCompatibility = targetCompatibility = JavaVersion.VERSION_1_8
|
|
compileJava {
|
|
sourceCompatibility = targetCompatibility = JavaVersion.VERSION_1_8
|
|
}
|
|
|
|
// ensure everything uses UTF-8 and not some random codepage chosen by gradle
|
|
compileJava.options.encoding = 'UTF-8'
|
|
tasks.withType(JavaCompile) {
|
|
options.encoding = 'UTF-8'
|
|
}
|
|
|
|
// Create version number
|
|
version = version_major + "." + version_minor + "." + version_patch
|
|
|
|
ext.pr = System.getenv('PR_NUMBER') ?: ""
|
|
if (ext.pr) {
|
|
version = version + "+pr." + ext.pr
|
|
}
|
|
|
|
ext.branch = System.getenv('BRANCH') ?: ""
|
|
if (ext.branch) {
|
|
version = version + "+branch." + ext.branch
|
|
}
|
|
|
|
ext.release = System.getenv('RELEASE') ?: ""
|
|
if (ext.release) {
|
|
version = ext.release
|
|
}
|
|
|
|
|
|
// Maven group and artifact name
|
|
group = artifact_group
|
|
archivesBaseName = artifact_basename
|
|
|
|
sourceSets {
|
|
api
|
|
main {
|
|
compileClasspath += sourceSets.api.output
|
|
runtimeClasspath += sourceSets.api.output
|
|
resources {
|
|
srcDir 'src/generated/resources'
|
|
}
|
|
}
|
|
test {
|
|
compileClasspath += sourceSets.api.output
|
|
runtimeClasspath += sourceSets.api.output
|
|
java {
|
|
exclude '**/*'
|
|
}
|
|
}
|
|
}
|
|
|
|
configurations {
|
|
apiCompile.extendsFrom(compile)
|
|
}
|
|
|
|
apply from: 'gradle/scripts/dependencies.gradle'
|
|
apply from: 'gradle/scripts/spotless.gradle'
|
|
|
|
minecraft {
|
|
mappings channel: "snapshot", version: project.mcp_mappings
|
|
|
|
accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg')
|
|
|
|
runs {
|
|
client {
|
|
property 'forge.logging.console.level', 'debug'
|
|
workingDirectory project.file('run')
|
|
property "mixin.debug.export", "true"
|
|
mods {
|
|
appliedenergistics2 {
|
|
source sourceSets.main
|
|
source sourceSets.api
|
|
}
|
|
}
|
|
}
|
|
server {
|
|
property 'forge.logging.console.level', 'debug'
|
|
workingDirectory project.file('run')
|
|
mods {
|
|
appliedenergistics2 {
|
|
source sourceSets.main
|
|
source sourceSets.api
|
|
}
|
|
}
|
|
}
|
|
data {
|
|
property 'forge.logging.console.level', 'debug'
|
|
workingDirectory project.file('run')
|
|
args '--mod', 'appliedenergistics2', '--all', '--output', file('src/generated/resources/')
|
|
mods {
|
|
appliedenergistics2 {
|
|
source sourceSets.main
|
|
source sourceSets.api
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
mixin {
|
|
add sourceSets.main, "appliedenergistics2.mixins.refmap.json"
|
|
}
|
|
|
|
jar {
|
|
manifest {
|
|
attributes([
|
|
"MixinConfigs": "appliedenergistics2.mixins.json"
|
|
])
|
|
}
|
|
}
|
|
|
|
def signProps = [:]
|
|
if (System.getenv("KEY_STORE_FILE")) {
|
|
signProps['keyStore'] = System.getenv("KEY_STORE_FILE")
|
|
signProps['storePass'] = System.getenv("KEY_STORE_PASS")
|
|
signProps['alias'] = System.getenv("KEY_STORE_ALIAS")
|
|
signProps['keyPass'] = System.getenv("KEY_STORE_KEY_PASS")
|
|
}
|
|
|
|
task signJar(type: net.minecraftforge.gradle.common.task.SignJar, dependsOn: 'reobfJar') {
|
|
onlyIf { !signProps.isEmpty() }
|
|
|
|
if (!signProps.isEmpty()) {
|
|
keyStore = signProps.keyStore
|
|
alias = signProps.alias
|
|
storePass = signProps.storePass
|
|
keyPass = signProps.keyPass
|
|
|
|
inputFile = jar.archivePath
|
|
outputFile = jar.archivePath
|
|
}
|
|
}
|
|
|
|
apply from: 'gradle/scripts/artifacts.gradle'
|
|
apply from: 'gradle/scripts/curseforge.gradle'
|
|
|
|
publishing {
|
|
publications {
|
|
maven(MavenPublication) {
|
|
groupId = project.group
|
|
artifactId = project.archivesBaseName
|
|
version = project.version
|
|
|
|
// ForgeGradle will generate wild dependency definitions, see https://github.com/MinecraftForge/ForgeGradle/issues/584
|
|
// Since we don't actually depend on anything, just remove the entire node.
|
|
pom.withXml {
|
|
asNode().remove(asNode().dependencies)
|
|
}
|
|
|
|
from components.java
|
|
artifact sourcesJar
|
|
artifact javadocJar
|
|
artifact apiJar
|
|
}
|
|
}
|
|
repositories {
|
|
maven {
|
|
credentials {
|
|
username System.getenv("GITHUB_ACTOR")
|
|
password System.getenv("GITHUB_TOKEN")
|
|
}
|
|
name = "GitHubPackages"
|
|
url = "https://maven.pkg.github.com/AppliedEnergistics/Applied-Energistics-2"
|
|
}
|
|
maven {
|
|
credentials {
|
|
username System.getenv("MODMAVEN_USER")
|
|
password System.getenv("MODMAVEN_PASSWORD")
|
|
}
|
|
name = "modmaven"
|
|
url = "https://modmaven.k-4u.nl/artifactory/local-releases/"
|
|
}
|
|
}
|
|
}
|