Upgraded buildscripts for minecraft 1.15.2

This commit is contained in:
yueh
2020-05-07 16:13:54 +02:00
parent f3349b0a2d
commit 3dff3a5d54
10 changed files with 201 additions and 192 deletions
+67 -71
View File
@@ -18,25 +18,22 @@
buildscript { buildscript {
repositories { repositories {
mavenLocal() maven { url = 'https://files.minecraftforge.net/maven' }
jcenter() jcenter()
mavenCentral() mavenCentral()
maven {
name = "forge"
url = "http://files.minecraftforge.net/maven"
}
} }
dependencies { dependencies {
classpath 'net.minecraftforge.gradle:ForgeGradle:2.3-SNAPSHOT' classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '3.+', changing: true
} }
} }
plugins { plugins {
id "org.sonarqube" version "2.6" id "org.sonarqube" version "2.8"
id "jacoco"
} }
apply plugin: 'net.minecraftforge.gradle.forge' apply plugin: 'net.minecraftforge.gradle'
apply plugin: 'jacoco' apply plugin: "eclipse"
repositories { repositories {
mavenLocal() mavenLocal()
@@ -44,12 +41,10 @@ repositories {
mavenCentral() mavenCentral()
} }
apply from: 'gradle/scripts/dependencies.gradle' sourceCompatibility = targetCompatibility = JavaVersion.VERSION_1_8
apply from: 'gradle/scripts/artifacts.gradle' compileJava {
apply from: 'gradle/scripts/optional.gradle' sourceCompatibility = targetCompatibility = JavaVersion.VERSION_1_8
}
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
// ensure everything uses UTF-8 and not some random codepage chosen by gradle // ensure everything uses UTF-8 and not some random codepage chosen by gradle
compileJava.options.encoding = 'UTF-8' compileJava.options.encoding = 'UTF-8'
@@ -57,65 +52,66 @@ tasks.withType(JavaCompile) {
options.encoding = 'UTF-8' options.encoding = 'UTF-8'
} }
version = aeversion + "-" + aechannel + "-" + aebuild version = version_major + "." + version_minor + "." + version_patch
group = aegroup group = artifact_group
archivesBaseName = aebasename archivesBaseName = artifact_basename
// Add Coremod Manifest
jar {
manifest {
attributes 'FMLAT': 'appeng_at.cfg'
}
from sourceSets.api.output
dependsOn apiClasses
// specify which files are really included, can control which APIs should be in
include "appeng/**"
include "assets/**"
include "mcmod.info"
include "pack.mcmeta"
include "META-INF/appeng_at.cfg"
}
minecraft {
version = minecraft_version + "-" + forge_version
replaceIn "AEConfig.java"
replaceIn "package-info.java"
replace "@version@", project.version
replace "@aeversion@", aeversion
replace "@aechannel@", aechannel
replace "@aebuild@", aebuild
// used when launching minecraft in dev env
runDir = "run"
mappings = mcp_mappings
}
sourceSets { sourceSets {
api api
main main {
compileClasspath += sourceSets.api.output
runtimeClasspath += sourceSets.api.output
}
test {
compileClasspath += sourceSets.api.output
runtimeClasspath += sourceSets.api.output
}
} }
processResources configurations {
{ apiCompile.extendsFrom(compile)
// this will ensure that this task is redone when the versions change.
inputs.property "version", project.version
inputs.property "mcversion", project.minecraft.version
// replace stuff in mcmod.info, nothing else
from(sourceSets.main.resources.srcDirs) {
include 'mcmod.info'
expand 'version': project.version, 'mcversion': project.minecraft.version
}
// copy everything else, thats not the mcmod.info
from(sourceSets.main.resources.srcDirs) {
exclude 'mcmod.info'
}
// move access transformer to META-INF
rename '(.+_at.cfg)', 'META-INF/$1'
} }
apply from: 'gradle/scripts/dependencies.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')
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
}
}
}
}
}
apply from: 'gradle/scripts/artifacts.gradle'
+16 -18
View File
@@ -1,35 +1,33 @@
aeversion=rv6 version_major=0
aechannel=alpha version_minor=0
aebuild=0 version_patch=0
aegroup=appeng
aebasename=appliedenergistics2 artifact_group=appeng
artifact_basename=appliedenergistics2
######################################################### #########################################################
# Versions # # Minecraft Versions #
######################################################### #########################################################
minecraft_version=1.12.2 minecraft_release=1.15
mcp_mappings=snapshot_20171003 minecraft_version=1.15.2
forge_version=14.23.5.2768 mcp_mappings=20200411-1.15.1
forge_version=31.1.43
#########################################################
# Installable #
#########################################################
hwyla_version=1.8.26-B41_1.12.2
######################################################### #########################################################
# Provided APIs # # Provided APIs #
######################################################### #########################################################
jei_version=4.13.0.219 jei_version=6.0.0.4
tesla_version=1.0.63 tesla_version=1.0.63
ic2_version=2.8.73-ex112 ic2_version=2.8.73-ex112
top_version=1.12-1.4.23-16 top_version=2.0.2-4
cofhcore_version=1.12.2-4.5.2.19 cofhcore_version=1.12.2-4.5.2.19
crafttweaker_version=4.1.8.9 crafttweaker_version=4.1.8.9
inventorytweaks_version=1.63 inventorytweaks_version=1.63
ctm_version=MC1.12.2-0.3.1.16 ctm_version=MC1.12.2-0.3.1.16
hwyla_version=1.8.26-B41_1.12.2
######################################################### #########################################################
# Deployment # # Deployment #
######################################################### #########################################################
website_version=1.12.2 website_version=1.15.2
curse_versions=1.12.2 curse_versions=1.15.2
+39 -25
View File
@@ -28,40 +28,54 @@ javadoc {
options.charSet = 'UTF-8' options.charSet = 'UTF-8'
} }
task javadocs(type: Javadoc) { jar {
source = sourceSets.api.java from sourceSets.main.output.classesDirs
include "appeng/api/**" from sourceSets.api.output.classesDirs
from sourceSets.main.output.resourcesDir
from sourceSets.api.output.resourcesDir
// Due to ForgeGradle having to be a special snowflake, manifest {
// we have to add some custom configurations to the normal compile configuration and hope it does not break. attributes([
classpath = configurations.compile + configurations.forgeGradleMc + configurations.forgeGradleMcDeps "Specification-Title": "Applied Energistics 2",
"Specification-Vendor": "TeamAppliedEnergistics",
"Specification-Version": "${project.version}",
"Implementation-Title": "${project.name}",
"Implementation-Version": "${project.version}",
"Implementation-Vendor" :"TeamAppliedEnergistics",
"Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ"),
])
}
} }
task javadocJar(type: Jar, dependsOn: javadocs) { task javadocs(type: Javadoc) {
from javadoc.destinationDir source = sourceSets.api.java
include "appeng/api/**"
}
classifier = 'javadoc' task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = "javadoc"
from javadoc.destinationDir
}
task sourcesJar(type: Jar) {
classifier = "sources"
from sourceSets.main.allJava
from sourceSets.api.allJava
} }
task apiJar(type: Jar) { task apiJar(type: Jar) {
from sourceSets.api.java classifier = "api"
include "appeng/api/**" from sourceSets.api.output
include "appeng/api/**"
from sourceSets.api.output // TODO: when FG bug is fixed, remove allJava from the api jar.
include "appeng/api/**" // https://github.com/MinecraftForge/ForgeGradle/issues/369
// Gradle should be able to pull them from the -sources jar.
classifier = 'api' from sourceSets.api.allJava
}
task sourceJar(type: Jar, overwrite: true) {
from sourceSets.api.allSource
from sourceSets.main.allSource
classifier = 'sources'
} }
artifacts { artifacts {
archives apiJar archives javadocJar
archives javadocJar archives sourcesJar
archives sourceJar archives apiJar
} }
+20 -19
View File
@@ -64,10 +64,10 @@ repositories {
url "http://maven.blamejared.com/" url "http://maven.blamejared.com/"
} }
//maven { // modmaven, maven proxy maven { // modmaven, maven proxy
// name 'modmaven' name 'modmaven'
// url "https://modmaven.k-4u.nl/" url "https://modmaven.k-4u.nl/"
//} }
maven { maven {
name = "CurseForge" name = "CurseForge"
@@ -80,25 +80,26 @@ configurations {
} }
dependencies { dependencies {
// installable runtime dependencies minecraft([
mods "mcp.mobius.waila:Hwyla:${hwyla_version}" group : "net.minecraftforge",
mods "net.industrial-craft:industrialcraft-2:${ic2_version}:dev" name : "forge",
mods "mcjty.theoneprobe:TheOneProbe-${minecraft_version}:${top_version}" version: "${project.minecraft_version}-${project.forge_version}"
])
// compile against provided APIs // compile against provided APIs
compileOnly "mezz.jei:jei_${minecraft_version}:${jei_version}:api" compileOnly "mezz.jei:jei-${minecraft_version}:${jei_version}:api"
compileOnly "mcp.mobius.waila:Hwyla:${hwyla_version}" //compileOnly "mcp.mobius.waila:Hwyla:${hwyla_version}"
compileOnly "net.darkhax.tesla:Tesla-1.12.2:${tesla_version}" //compileOnly "net.darkhax.tesla:Tesla-1.12.2:${tesla_version}"
compileOnly "net.industrial-craft:industrialcraft-2:${ic2_version}:api" //compileOnly "net.industrial-craft:industrialcraft-2:${ic2_version}:api"
compileOnly "mcjty.theoneprobe:TheOneProbe-1.12:${top_version}:api" compileOnly "mcjty.theoneprobe:TheOneProbe-${minecraft_release}:${minecraft_release}-${top_version}:api"
compileOnly "cofh:CoFHCore:${cofhcore_version}:deobf" //compileOnly "cofh:CoFHCore:${cofhcore_version}:deobf"
compileOnly "CraftTweaker2:CraftTweaker2-API:${crafttweaker_version}" //compileOnly "CraftTweaker2:CraftTweaker2-API:${crafttweaker_version}"
compileOnly "inventory-tweaks:InventoryTweaks:${inventorytweaks_version}:api" //compileOnly "inventory-tweaks:InventoryTweaks:${inventorytweaks_version}:api"
compileOnly "team.chisel.ctm:CTM:${ctm_version}" //compileOnly "team.chisel.ctm:CTM:${ctm_version}"
// at runtime, use the full JEI jar // at runtime, use the full JEI jar
runtime "mezz.jei:jei_${minecraft_version}:${jei_version}" runtime "mezz.jei:jei-${minecraft_version}:${jei_version}"
// unit test dependencies // unit test dependencies
testCompile "junit:junit:4.12" testCompile "junit:junit:4.13"
} }
-55
View File
@@ -1,55 +0,0 @@
/*
* This file is part of Applied Energistics 2.
* Copyright (c) 2013 - 2014, 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>.
*/
task wrapper(type: Wrapper) {
gradleVersion = "2.14"
}
// HWYLA
task installHwyla(type: Copy, dependsOn: "deinstallHwyla") {
from { configurations.mods }
include "**/*Hwyla*.jar"
into file(minecraft.runDir + "/mods")
}
task deinstallHwyla(type: Delete) {
delete fileTree(dir: minecraft.runDir + "/mods", include: "*Hwyla*.jar")
}
// IC2
task installIC2(type: Copy, dependsOn: "deinstallIC2") {
from { configurations.mods }
include "**/*industrialcraft-2*.jar"
into file(minecraft.runDir + "/mods")
}
task deinstallIC2(type: Delete) {
delete fileTree(dir: minecraft.runDir + "/mods", include: "*industrialcraft-2*.jar")
}
// TOP
task installTop(type: Copy, dependsOn: ["deinstallTop"]) {
from { configurations.mods }
include "**/*TheOneProbe*.jar"
into file(minecraft.runDir + "/mods")
}
task deinstallTop(type: Delete) {
delete fileTree(dir: minecraft.runDir + "/mods", include: "*TheOneProbe*.jar")
}
Binary file not shown.
+1 -1
View File
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.9-bin.zip
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.8-bin.zip
-3
View File
@@ -1,3 +0,0 @@
# GUI rendering
public net.minecraft.client.gui.inventory.GuiContainer func_146977_a(Lnet/minecraft/inventory/Slot;)V # drawSlot
public net.minecraft.client.gui.GuiTextField func_146188_c(IIII)V # drawSelectionBox
@@ -0,0 +1,3 @@
# GUI rendering
#public net.minecraft.client.gui.inventory.GuiContainer func_146977_a(Lnet/minecraft/inventory/Slot;)V # drawSlot
#public net.minecraft.client.gui.GuiTextField func_146188_c(IIII)V # drawSelectionBox
@@ -0,0 +1,55 @@
# There are several mandatory fields (#mandatory), and many more that are optional (#optional).
# The overall format is standard TOML format, v0.5.0.
# Note that there are a couple of TOML lists in this file.
# Find more information on toml format here: https://github.com/toml-lang/toml
# The name of the mod loader type to load - for regular FML @Mod mods it should be javafml
modLoader="javafml" #mandatory
# A version range to match for said mod loader - for regular FML @Mod it will be the minecraft version (without the 1.)
loaderVersion="[31,)" #mandatory
# A URL to query for updates for this mod. See the JSON update specification <here>
#updateJSONURL="" #optional
# A URL to refer people to when problems occur with this mod
issueTrackerURL="https://github.com/AppliedEnergistics/Applied-Energistics-2/issues" #optional
# A URL for the "homepage" for this mod, displayed in the mod UI
displayURL="https://github.com/AppliedEnergistics/Applied-Energistics-2" #optional
# A file name (in the root of the mod JAR) containing a logo for display
#logoFile="examplemod.png" #optional
# A text field displayed in the mod UI
#credits="Thanks for this example mod goes to Java" #optional
# A text field displayed in the mod UI
authors="TeamAppliedEnergistics" #optional
# A list of mods - how many allowed here is determined by the individual mod loader
[[mods]] #mandatory
# The modid of the mod
modId="appliedenergistics2" #mandatory
# The version number of the mod
version="${file.jarVersion}" #mandatory
# A display name for the mod
displayName="Applied Energistics 2" #mandatory
# The description text for the mod (multi line!) (#mandatory)
description='''
A Mod about Matter, Energy and using them to conquer the world..
'''
# A dependency - use the . to indicate dependency for a specific modid. Dependencies are optional.
[[dependencies.jei]]
modId="forge" #mandatory
mandatory=true #mandatory
versionRange="[31.0.0,)" #mandatory
# An ordering relationship for the dependency - BEFORE or AFTER required if the relationship is not mandatory
ordering="NONE"
# Side this dependency is applied on - BOTH, CLIENT or SERVER
side="BOTH"