Updates to gradle files.

This commit is contained in:
MattBDev 2019-06-26 21:34:20 -04:00
parent 3a4354268c
commit e38541aa9b
5 changed files with 278 additions and 72 deletions

View File

@ -2,7 +2,6 @@ import org.ajoberstar.grgit.Grgit
buildscript { buildscript {
repositories { repositories {
mavenLocal()
mavenCentral() mavenCentral()
maven { url = "https://oss.sonatype.org/content/repositories/snapshots/" } maven { url = "https://oss.sonatype.org/content/repositories/snapshots/" }
jcenter() jcenter()
@ -10,8 +9,6 @@ buildscript {
configurations.all { configurations.all {
resolutionStrategy { resolutionStrategy {
force 'com.google.guava:guava:21.0'
force 'org.ow2.asm:asm:6.0_BETA'
force 'commons-io:commons-io:2.4' force 'commons-io:commons-io:2.4'
} }
} }
@ -27,12 +24,19 @@ plugins {
id "org.ajoberstar.grgit" version "3.1.1" id "org.ajoberstar.grgit" version "3.1.1"
} }
apply plugin: 'java' println """
*******************************************
You are building WorldEdit!
def splashFile = new File('splash.txt') If you encounter trouble:
if (splashFile.exists()) { 1) Read COMPILING.md if you haven't yet
print splashFile.text 2) Try running 'build' in a separate Gradle run
} 3) Use gradlew and not gradle
4) If you still need help, ask on Discord! https://discord.gg/ngZCzbU
Output files will be in /target
*******************************************
"""
group = 'com.boydti.fawe' group = 'com.boydti.fawe'
@ -61,39 +65,56 @@ version = String.format("%s.%s", rootVersion, buildNumber)
description = rootProject.name description = rootProject.name
subprojects { subprojects {
repositories {
mavenCentral()
maven { url "http://maven.sk89q.com/repo/" }
maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
maven { url "http://repo.maven.apache.org/maven2" }
// Fawe
maven { url "https://mvnrepository.com/artifact/" }
maven { url "http://repo.dmulloy2.net/content/groups/public/" }
maven { url "https://repo.destroystokyo.com/repository/maven-public//" }
maven { url "http://ci.athion.net/job/PlotSquared-Breaking/ws/mvn/" }
maven { url "https://libraries.minecraft.net" }
mavenLocal()
maven { url "http://empcraft.com/maven2" }
maven { url "https://hub.spigotmc.org/nexus/content/groups/public/" }
maven { url "http://ci.frostcast.net/plugin/repository/everything" }
maven { url "http://maven.sk89q.com/artifactory/repo" }
maven { url "http://repo.spongepowered.org/maven" }
maven { url "http://dl.bintray.com/tastybento/maven-repo" }
maven { url "http://ci.emc.gs/nexus/content/groups/aikar/" }
}
configurations.all {
resolutionStrategy {
cacheChangingModulesFor 5, 'minutes'
}
}
}
configure(['worldedit-core', 'worldedit-bukkit', 'favs'].collect { project("$it") }) {
apply plugin: 'java' apply plugin: 'java'
apply plugin: 'maven' apply plugin: 'maven'
// apply plugin: 'checkstyle'
apply plugin: 'com.github.johnrengelman.shadow' apply plugin: 'com.github.johnrengelman.shadow'
//Enable this requires putting license header files in many, many FAWE files // Enable this requires putting license header files in many, many FAWE files
//apply plugin: 'net.minecrell.licenser' // apply plugin: 'net.minecrell.licenser'
sourceCompatibility = JavaVersion.VERSION_1_8 sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8
// checkstyle.configFile = new File(rootProject.projectDir, "config/checkstyle/checkstyle.xml")
// checkstyle.toolVersion = '7.6.1'
clean.doFirst { clean.doFirst {
delete "../target" delete "../target"
} }
compileJava { options.compilerArgs += ["-parameters"] } if (JavaVersion.current().isJava8Compatible()) {
// Java 8 turns on doclint which we fail
repositories { tasks.withType(Javadoc) {
mavenCentral() options.addStringOption('Xdoclint:none', '-quiet')
maven { url "http://maven.sk89q.com/repo/" } }
maven { url "http://repo.maven.apache.org/maven2" }
// Fawe
maven {url "https://mvnrepository.com/artifact/"}
maven {url "http://repo.dmulloy2.net/content/groups/public/"}
maven {url "https://repo.destroystokyo.com/repository/maven-public//"}
maven {url "http://ci.athion.net/job/PlotSquared-Breaking/ws/mvn/"}
maven { url "https://libraries.minecraft.net" }
mavenLocal()
maven {url "http://empcraft.com/maven2"}
maven {url "https://hub.spigotmc.org/nexus/content/groups/public/"}
maven {url "http://ci.frostcast.net/plugin/repository/everything"}
maven {url "http://maven.sk89q.com/artifactory/repo"}
maven {url "http://repo.spongepowered.org/maven"}
maven {url "http://dl.bintray.com/tastybento/maven-repo"}
maven {url "http://ci.emc.gs/nexus/content/groups/aikar/" }
} }
if (!(name.equals('worldedit-forge') || name.equals('worldedit-sponge'))) { if (!(name.equals('worldedit-forge') || name.equals('worldedit-sponge'))) {
@ -108,46 +129,50 @@ subprojects {
build.dependsOn(sourcesJar) build.dependsOn(sourcesJar)
} }
// build.dependsOn(checkstyleMain)
// build.dependsOn(checkstyleTest)
dependencies { dependencies {
compileOnly 'org.jetbrains:annotations:17.0.0' compileOnly 'org.jetbrains:annotations:17.0.0'
} }
shadowJar { configure(['bukkit'].collect { project(":worldedit-$it") }) {
classifier 'dist' shadowJar {
dependencies { classifier 'dist'
include(dependency('com.sk89q:jchronic:0.2.4a')) dependencies {
include(dependency('com.thoughtworks.paranamer:paranamer:2.6')) include(project(":worldedit-libs:core"))
include(dependency('com.sk89q.lib:jlibnoise:1.0.0')) include(project(":worldedit-libs:${project.name.replace("worldedit-", "")}"))
include(dependency('com.github.luben:zstd-jni:1.1.1')) include(project(":worldedit-core"))
include(dependency('co.aikar:fastutil-lite:1.0')) }
include(dependency('org.jetbrains:annotations:17.0.0')) exclude 'GradleStart**'
exclude '.cache'
exclude 'LICENSE*'
} }
exclude 'GradleStart**'
exclude '.cache' // Enable this requires putting license header files in many, many FAWE files
exclude 'LICENSE*' //license {
// header = rootProject.file("HEADER.txt")
// include '**/*.java'
//}
} }
task aggregatedJavadocs(type: Javadoc, description: 'Generate javadocs from all child projects as if it was a single project', group: 'Documentation') {
destinationDir = file("./docs/javadoc")
title = "$project.name $version API"
options.author true
options.links 'http://docs.spring.io/spring/docs/4.3.x/javadoc-api/', 'http://docs.oracle.com/javase/8/docs/api/', 'http://docs.spring.io/spring-ws/docs/2.3.0.RELEASE/api/', 'http://docs.spring.io/spring-security/site/docs/4.0.4.RELEASE/apidocs/'
options.addStringOption('Xdoclint:none', '-quiet')
// Enable this requires putting license header files in many, many FAWE files delete "./docs"
//license {
// header = rootProject.file("HEADER.txt")
// include '**/*.java'
//}
}
task aggregatedJavadocs(type: Javadoc, description: 'Generate javadocs from all child projects as if it was a single project', group: 'Documentation') {
destinationDir = file("./docs/javadoc")
title = "$project.name $version API"
options.author true
options.links 'http://docs.spring.io/spring/docs/4.3.x/javadoc-api/', 'http://docs.oracle.com/javase/8/docs/api/', 'http://docs.spring.io/spring-ws/docs/2.3.0.RELEASE/api/', 'http://docs.spring.io/spring-security/site/docs/4.0.4.RELEASE/apidocs/'
options.addStringOption('Xdoclint:none', '-quiet')
delete "./docs" subprojects.each { proj ->
proj.tasks.withType(Javadoc).each { javadocTask ->
subprojects.each { proj -> source += javadocTask.source
proj.tasks.withType(Javadoc).each { javadocTask -> classpath += javadocTask.classpath
source += javadocTask.source excludes += javadocTask.excludes
classpath += javadocTask.classpath includes += javadocTask.includes
excludes += javadocTask.excludes }
includes += javadocTask.includes
} }
} }
} }

View File

@ -1,3 +1,11 @@
rootProject.name = 'FastAsyncWorldEdit' rootProject.name = 'FastAsyncWorldEdit'
include 'worldedit-core', 'worldedit-bukkit', 'favs' include 'worldedit-libs'
['bukkit', 'core'].forEach {
include "worldedit-libs:$it"
include "worldedit-$it"
}
include "worldedit-libs:core:ap"
include 'favs'

View File

@ -1,21 +1,29 @@
apply plugin: 'eclipse' apply plugin: 'eclipse'
apply plugin: 'idea' apply plugin: 'idea'
apply plugin: 'maven' apply plugin: 'maven'
apply plugin: 'java-library'
repositories { repositories {
maven { url "https://hub.spigotmc.org/nexus/content/groups/public" } maven { url "https://hub.spigotmc.org/nexus/content/groups/public" }
maven { url "https://repo.codemc.org/repository/maven-public" } maven { url "https://repo.codemc.org/repository/maven-public" }
maven { url 'https://papermc.io/repo/repository/maven-public/' } maven { url "https://papermc.io/repo/repository/maven-public/" }
}
configurations.all { Configuration it ->
it.resolutionStrategy { ResolutionStrategy rs ->
rs.force("com.google.guava:guava:21.0")
}
} }
dependencies { dependencies {
compile project(':worldedit-core') api project(':worldedit-core')
api project(':worldedit-libs:bukkit')
compile 'net.milkbowl.vault:VaultAPI:1.7' compile 'net.milkbowl.vault:VaultAPI:1.7'
compile 'com.sk89q:dummypermscompat:1.10'
compile 'com.destroystokyo.paper:paper-api:1.13.2-R0.1-SNAPSHOT' compile 'com.destroystokyo.paper:paper-api:1.13.2-R0.1-SNAPSHOT'
implementation 'io.papermc:paperlib:1.0.2'
compileOnly 'com.sk89q:dummypermscompat:1.10'
compile 'org.spigotmc:spigot:1.13.2-R0.1-SNAPSHOT' compile 'org.spigotmc:spigot:1.13.2-R0.1-SNAPSHOT'
compile 'org.slf4j:slf4j-jdk14:1.7.26' implementation 'org.apache.logging.log4j:log4j-slf4j-impl:2.8.1'
testCompile 'org.mockito:mockito-core:1.9.0-rc1' testCompile 'org.mockito:mockito-core:1.9.0-rc1'
compile 'com.massivecraft:factions:2.8.0' compile 'com.massivecraft:factions:2.8.0'
compile 'com.drtshock:factions:1.6.9.5' compile 'com.drtshock:factions:1.6.9.5'
@ -81,9 +89,13 @@ task copyFiles {
shadowJar { shadowJar {
dependencies { dependencies {
relocate "org.slf4j", "com.sk89q.worldedit.slf4j" relocate "org.slf4j", "com.sk89q.worldedit.slf4j"
relocate "org.apache.logging.slf4j", "com.sk89q.worldedit.log4jbridge"
include(dependency(':worldedit-core')) include(dependency(':worldedit-core'))
include(dependency('org.slf4j:slf4j-api')) include(dependency('org.slf4j:slf4j-api'))
include(dependency("org.slf4j:slf4j-jdk14")) include(dependency("org.apache.logging.log4j:log4j-slf4j-impl"))
relocate ("io.papermc.lib", "com.sk89q.worldedit.bukkit.paperlib") {
include(dependency("io.papermc:paperlib:1.0.2"))
}
} }
archiveName = "${parent.name}-${project.name.replaceAll("worldedit-", "")}-${parent.version}.jar" archiveName = "${parent.name}-${project.name.replaceAll("worldedit-", "")}-${parent.version}.jar"
destinationDir = file '../target' destinationDir = file '../target'

View File

@ -1,24 +1,38 @@
apply plugin: 'java-library'
apply plugin: 'eclipse' apply plugin: 'eclipse'
apply plugin: 'idea' apply plugin: 'idea'
repositories { repositories {
maven {url "http://ci.athion.net/job/PlotSquared-Breaking/ws/mvn/"} maven {url "http://ci.athion.net/job/PlotSquared-Breaking/ws/mvn/"}
} }
configurations.all { Configuration it ->
it.resolutionStrategy { ResolutionStrategy rs ->
rs.force("com.google.guava:guava:21.0")
}
}
dependencies { dependencies {
compile project(':worldedit-libs:core')
compile 'de.schlichtherle:truezip:6.8.3' compile 'de.schlichtherle:truezip:6.8.3'
compile 'rhino:js:1.7R2' compile 'rhino:js:1.7R2'
compile 'org.yaml:snakeyaml:1.23'
compile 'com.google.guava:guava:21.0' compile 'com.google.guava:guava:21.0'
compile 'com.sk89q:jchronic:0.2.4a'
compile 'com.google.code.findbugs:jsr305:1.3.9' compile 'com.google.code.findbugs:jsr305:1.3.9'
compile 'com.thoughtworks.paranamer:paranamer:2.6' compile 'com.thoughtworks.paranamer:paranamer:2.6'
compile 'com.google.code.gson:gson:2.8.0' compile 'com.google.code.gson:gson:2.8.0'
compile 'com.sk89q.lib:jlibnoise:1.0.0'
compile 'com.googlecode.json-simple:json-simple:1.1.1' compile 'com.googlecode.json-simple:json-simple:1.1.1'
compile 'org.slf4j:slf4j-api:1.7.26' compile 'org.slf4j:slf4j-api:1.7.26'
compileOnly project(':worldedit-libs:core:ap')
annotationProcessor project(':worldedit-libs:core:ap')
annotationProcessor "com.google.guava:guava:21.0"
def avVersion = "1.6.5"
compileOnly "com.google.auto.value:auto-value-annotations:$avVersion"
annotationProcessor "com.google.auto.value:auto-value:$avVersion"
//compile 'net.sf.trove4j:trove4j:3.0.3' //compile 'net.sf.trove4j:trove4j:3.0.3'
testCompile 'org.mockito:mockito-core:1.9.0-rc1' testCompile 'org.mockito:mockito-core:1.9.0-rc1'
// Fawe depends // Fawe depends
compile 'org.yaml:snakeyaml:1.19'
compile 'net.fabiozumbi12:redprotect:1.9.6' compile 'net.fabiozumbi12:redprotect:1.9.6'
compile ("com.github.intellectualsites.plotsquared:PlotSquared-API:latest") { compile ("com.github.intellectualsites.plotsquared:PlotSquared-API:latest") {
transitive = false transitive = false
@ -28,6 +42,10 @@ dependencies {
compile 'co.aikar:fastutil-lite:1.0' compile 'co.aikar:fastutil-lite:1.0'
} }
tasks.withType(JavaCompile).configureEach {
it.options.compilerArgs.add("-Aarg.name.key.prefix=")
}
sourceSets { sourceSets {
main { main {
java { java {

143
worldedit-libs/build.gradle Normal file
View File

@ -0,0 +1,143 @@
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") })
}