Created
November 20, 2016 14:33
-
-
Save Barteks2x/168d4cf4757847e3a53f0832aa2901f3 to your computer and use it in GitHub Desktop.
Forge MDK buildscript in kotlin for gradle 3.2 (using forge 1.11-13.19.0.2153)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import net.minecraftforge.gradle.user.patcherUser.forge.ForgeExtension | |
import net.minecraftforge.gradle.user.patcherUser.forge.ForgePlugin | |
import org.gradle.api.JavaVersion | |
import org.gradle.api.plugins.JavaPluginConvention | |
import org.gradle.language.jvm.tasks.ProcessResources | |
import org.gradle.script.lang.kotlin.* | |
// Gradle repositories and dependencies | |
buildscript { | |
repositories { | |
jcenter() | |
maven { | |
setUrl("http://files.minecraftforge.net/maven") | |
} | |
} | |
dependencies { | |
classpath("net.minecraftforge.gradle:ForgeGradle:2.2-SNAPSHOT") | |
} | |
} | |
apply { | |
plugin<ForgePlugin>() | |
//Only edit below this line, the above code adds and enables the nessasary things for Forge to be setup. | |
} | |
version = "1.0" | |
group = "com.yourname.modid" // http://maven.apache.org/guides/mini/guide-naming-conventions.html | |
project.setProperty("archivesBaseName", "modid") | |
val sourceSets = the<JavaPluginConvention>().sourceSets | |
val minecraft = extensions.getByType(ForgeExtension::class.java) | |
configure<JavaPluginConvention> { | |
setSourceCompatibility(JavaVersion.VERSION_1_6) | |
setTargetCompatibility(JavaVersion.VERSION_1_6) | |
} | |
configure<ForgeExtension> { | |
version = "1.11-13.19.0.2153" | |
runDir = "run" | |
// the mappings can be changed at any time, and must be in the following format. | |
// snapshot_YYYYMMDD snapshot are built nightly. | |
// stable_# stables are built at the discretion of the MCP team. | |
// Use non-default mappings at your own risk. they may not allways work. | |
// simply re-run your setup task after changing the mappings to update your workspace. | |
mappings = "snapshot_20161111" | |
// makeObfSourceJar = false // an Srg named sources jar is made by default. uncomment this to disable. | |
} | |
dependencies { | |
// you may put jars on which you depend on in ./libs | |
// or you may define them like so.. | |
//compile("some.group:artifact:version:classifier") | |
//compile("some.group:artifact:version") | |
// real examples | |
//compile("com.mod-buildcraft:buildcraft:6.0.8:dev") // adds buildcraft to the dev env | |
compile("com.googlecode.efficient-java-matrix-library:ejml:0.24") // adds ejml to the dev env | |
// required for configurations below, can be anywhere above them | |
//val provided = configurations.getByName("provided") | |
//val deobfCompile = configurations.getByName("deobfCompile") | |
//val deobfProvided = configurations.getByName("deobfProvided") | |
// the 'provided' configuration is for optional dependencies that exist at compile-time but might not at runtime. | |
//provided("com.mod-buildcraft:buildcraft:6.0.8:dev") | |
// the deobf configurations: 'deobfCompile' and 'deobfProvided' are the same as the normal compile and provided, | |
// except that these dependencies get remapped to your current MCP mappings | |
//deobfCompile("com.mod-buildcraft:buildcraft:6.0.8:dev") | |
//deobfProvided("com.mod-buildcraft:buildcraft:6.0.8:dev") | |
// for more info... (note: these links are not yet updated to use kotlin) | |
// http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html | |
// http://www.gradle.org/docs/current/userguide/dependency_management.html | |
} | |
val processResources = tasks.getByName("processResources") as ProcessResources | |
processResources.apply { | |
// this will ensure that this task is redone when the versions change. | |
inputs.property("version", project.version) | |
inputs.property("mcversion", minecraft.version) | |
// replace stuff in mcmod.info, nothing else | |
from(sourceSets.getByName("main").resources.srcDirs) { | |
include("mcmod.info") | |
// replace version and mcversion | |
expand(mapOf("version" to project.version, "mcversion" to minecraft.version)) | |
} | |
// copy everything else, thats not the mcmod.info | |
from(sourceSets.getByName("main").resources.srcDirs) { | |
exclude("mcmod.info") | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment