[Forge] Add dependency shading via the gradle shadow plugin.

This commit is contained in:
wizjany 2014-05-15 14:41:26 -04:00
parent 38ac5c9ad1
commit 75b9f3edaa

View File

@ -7,16 +7,19 @@ buildscript {
repositories {
mavenCentral()
maven { url = "http://files.minecraftforge.net/maven" }
jcenter()
}
dependencies {
classpath 'net.minecraftforge.gradle:ForgeGradle:1.0-SNAPSHOT'
classpath 'com.github.jengelman.gradle.plugins:shadow:0.8'
}
}
apply plugin: 'java'
apply plugin: 'maven'
apply plugin: 'forge'
apply plugin: 'shadow'
group = 'com.sk89q'
version = '6.0.0-SNAPSHOT'
@ -76,4 +79,35 @@ processResources {
from (sourceSets.main.resources.srcDirs) {
exclude 'mcmod.info'
}
}
}
// shade needed runtime dependencies
shadow {
//artifactAttached false
destinationDir "${buildDir}/libs/"
artifactSet {
include '*:jchronic:jar:'
}
}
task deleteOrig(type: Delete) {
delete "${project.tasks.jar.getArchivePath().getPath()}"
}
task renameShaded(type: Copy) {
from file("${buildDir}/libs")
into file("${buildDir}/libs")
rename { String fileName ->
fileName.replace('-shadow', '')
}
}
task deleteShaded(type: Delete) {
delete "${project.tasks.jar.getArchivePath().getPath().replace('.jar', '-shadow.jar')}"
}
// follow all the steps
build.dependsOn(deleteShaded)
deleteShaded.dependsOn(renameShaded)
renameShaded.dependsOn(deleteOrig)
deleteOrig.dependsOn(shadowJar)