geforkt von Mirrors/FastAsyncWorldEdit
144 Zeilen
4.7 KiB
Groovy
144 Zeilen
4.7 KiB
Groovy
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
|
|
/*
|
|
|
|
This project shades <em>API</em> libraries, i.e. those libraries
|
|
whose classes are publicly referenced from `-core` classes.
|
|
|
|
This project <em>does not</em> shade implementation libraries, i.e.
|
|
those libraries whose classes are internally depended on.
|
|
|
|
This is because the main reason for shading those libraries is for
|
|
their internal usage in each platform, not because we need them available to
|
|
dependents of `-core` to compile and work with WorldEdit's API.
|
|
|
|
*/
|
|
configure(subprojects + project("core:ap")) {
|
|
apply plugin: 'maven'
|
|
apply plugin: 'com.github.johnrengelman.shadow'
|
|
apply plugin: 'com.jfrog.artifactory'
|
|
configurations {
|
|
create("shade")
|
|
getByName("archives").extendsFrom(getByName("default"))
|
|
}
|
|
|
|
group = rootProject.group + ".worldedit-libs"
|
|
|
|
tasks.register("jar", ShadowJar) {
|
|
configurations = [project.configurations.shade]
|
|
classifier = ""
|
|
|
|
dependencies {
|
|
exclude(dependency("com.google.guava:guava"))
|
|
exclude(dependency("com.google.code.gson:gson"))
|
|
exclude(dependency("org.checkerframework:checker-qual"))
|
|
}
|
|
|
|
relocate('net.kyori.text', 'com.sk89q.worldedit.util.formatting.text')
|
|
}
|
|
def altConfigFiles = { String artifactType ->
|
|
def deps = configurations.shade.incoming.dependencies
|
|
.collect { it.copy() }
|
|
.collect { dependency ->
|
|
dependency.artifact { artifact ->
|
|
artifact.name = dependency.name
|
|
artifact.type = artifactType
|
|
artifact.extension = 'jar'
|
|
artifact.classifier = artifactType
|
|
}
|
|
dependency
|
|
}
|
|
|
|
return files(configurations.detachedConfiguration(deps as Dependency[])
|
|
.resolvedConfiguration.lenientConfiguration.getArtifacts()
|
|
.findAll { it.classifier == artifactType }
|
|
.collect { zipTree(it.file) })
|
|
}
|
|
tasks.register("sourcesJar", Jar) {
|
|
from {
|
|
altConfigFiles('sources')
|
|
}
|
|
def filePattern = ~'(.*)net/kyori/text((?:/|$).*)'
|
|
def textPattern = ~/net\.kyori\.text/
|
|
eachFile {
|
|
it.filter { String line ->
|
|
line.replaceFirst(textPattern, 'com.sk89q.worldedit.util.formatting.text')
|
|
}
|
|
it.path = it.path.replaceFirst(filePattern, '$1com/sk89q/worldedit/util/formatting/text$2')
|
|
}
|
|
classifier = "sources"
|
|
}
|
|
|
|
artifacts {
|
|
add("default", jar)
|
|
add("archives", sourcesJar)
|
|
}
|
|
|
|
tasks.register("install", Upload) {
|
|
configuration = configurations.archives
|
|
repositories.mavenInstaller {
|
|
pom.version = project.version
|
|
pom.artifactId = project.name
|
|
}
|
|
}
|
|
|
|
artifactoryPublish {
|
|
publishConfigs('default')
|
|
}
|
|
|
|
build.dependsOn(jar, sourcesJar)
|
|
}
|
|
|
|
def textExtrasVersion = "3.0.2"
|
|
project("core") {
|
|
def textVersion = "3.0.1"
|
|
def pistonVersion = '0.4.1'
|
|
|
|
dependencies {
|
|
shade "net.kyori:text-api:$textVersion"
|
|
shade "net.kyori:text-serializer-gson:$textVersion"
|
|
shade "net.kyori:text-serializer-legacy:$textVersion"
|
|
shade "net.kyori:text-serializer-plain:$textVersion"
|
|
shade('com.sk89q:jchronic:0.2.4a') {
|
|
exclude(group: "junit", module: "junit")
|
|
}
|
|
shade 'com.thoughtworks.paranamer:paranamer:2.6'
|
|
shade 'com.sk89q.lib:jlibnoise:1.0.0'
|
|
shade "org.enginehub.piston:core:$pistonVersion"
|
|
shade "org.enginehub.piston.core-ap:runtime:$pistonVersion"
|
|
shade "org.enginehub.piston:default-impl:$pistonVersion"
|
|
}
|
|
|
|
project("ap") {
|
|
dependencies {
|
|
shade "org.enginehub.piston.core-ap:annotations:$pistonVersion"
|
|
shade "org.enginehub.piston.core-ap:processor:$pistonVersion"
|
|
}
|
|
}
|
|
}
|
|
project("bukkit") {
|
|
repositories {
|
|
maven {
|
|
name = "SpigotMC"
|
|
url = "https://hub.spigotmc.org/nexus/content/repositories/snapshots/"
|
|
}
|
|
}
|
|
dependencies {
|
|
shade "net.kyori:text-adapter-bukkit:$textExtrasVersion"
|
|
}
|
|
}
|
|
project("sponge") {
|
|
repositories {
|
|
maven {
|
|
name = "Sponge"
|
|
url = "https://repo.spongepowered.org/maven"
|
|
}
|
|
}
|
|
dependencies {
|
|
shade "net.kyori:text-adapter-spongeapi:$textExtrasVersion"
|
|
}
|
|
}
|
|
|
|
tasks.register("build") {
|
|
dependsOn(subprojects.collect { it.tasks.named("build") })
|
|
}
|