Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- allprojects {
- repositories {
- jcenter()
- mavenCentral()
- mavenLocal()
- }
- }
- buildscript {
- repositories {
- maven { url = 'https://files.minecraftforge.net/maven' }
- gradlePluginPortal()
- }
- dependencies {
- classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '3.+', changing: true
- classpath "gradle.plugin.com.lazan:gradle-maven-share:0.4"
- }
- }
- allprojects {
- apply plugin: 'idea'
- apply plugin: 'eclipse'
- apply plugin: 'maven-publish'
- ext {
- isDepForge = false
- isMaven = false
- delayedSetup = {}
- }
- }
- subprojects {
- ext {
- title = project.name
- fmlmodtype = "MOD"
- }
- group = 'org.oilmod'
- }
- //important to now evaluate children as they might change properties we depend on and we do not want to read the default values!
- evaluationDependsOnChildren()
- allprojects {
- if (project.isDepForge) {
- println "$project.name is forge dep"
- apply plugin: 'net.minecraftforge.gradle'
- configurations {
- // configuration that holds jars to copy into lib
- compileJars
- providedJars
- releaseJars
- releaseJars.extendsFrom(compileJars)
- compile.extendsFrom(compileJars)
- }
- }
- if (project.isMaven) {
- apply plugin: 'java'
- apply plugin: 'com.lazan.gradlemavenshare'
- fmlmodtype = 'NONE/MAVEN-LIB' //only for debug purposes, is never read
- }
- project.delayedSetup()
- if (project.isDepForge) {
- archivesBaseName = project.projectDir.name
- sourceCompatibility = targetCompatibility = compileJava.sourceCompatibility = compileJava.targetCompatibility = '1.8' // Need this here so eclipse task generates correctly.
- dependencies {
- // Specify the version of Minecraft to use, If this is any group other then 'net.minecraft' it is assumed
- // that the dep is a ForgeGradle 'patcher' dependency. And it's patches will be applied.
- // The userdev artifact is a special name and will get all sorts of transformations applied to it.
- minecraft 'net.minecraftforge:forge:1.14.4-28.1.90'
- // 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
- // 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'
- // These dependencies get remapped to your current MCP mappings
- // deobf 'com.mod-buildcraft:buildcraft:6.0.8:dev'
- // For more info...
- // http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html
- // http://www.gradle.org/docs/current/userguide/dependency_management.html
- }
- minecraft {
- // 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 always work.
- // Simply re-run your setup task after changing the mappings to update your workspace.
- mappings channel: 'snapshot', version: '20190719-1.14.3'
- // makeObfSourceJar = false // an Srg named sources jar is made by default. uncomment this to disable.
- // accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg')
- }
- if (project.metaClass.respondsTo(project, "setupForge")) {
- setupForge() //if the subproject wants to do extra forge setup this gets called
- }
- //println "Subproject $project.name properties: FMLMODTYPE $project.fmlmodtype"
- jar {
- doFirst { task ->
- println "Doing jar task for $task.project.name version ${task.project.version} and FMLMODTYPE $task.project.fmlmodtype"
- }
- manifest {
- attributes([
- "Specification-Title": project.title,
- "Specification-Vendor": "oilforge",
- "Specification-Version": "1", // We are version 1 of ourselves
- "Implementation-Title": project.name,
- "Implementation-Version": "${version}",
- "Implementation-Vendor" :"oilforge",
- "Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ"),
- "FMLModType": fmlmodtype,
- //"Class-Path": configurations.releaseJars.collect { "META-INF/libraries/${it.getName()}" }.join(' ') //todo fix dependency inclusion
- ])
- }
- into('META-INF/libraries/') {
- from configurations.releaseJars
- }
- }
- }
- }
- subprojects {
- // Example for how to get properties into the manifest for reading by the runtime..
- task hello {
- doLast { task ->
- println "I'm $task.project.name version ${task.project.version} and FMLMODTYPE $task.project.fmlmodtype"
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement