plugins { id 'java' id 'com.github.johnrengelman.shadow' version '6.1.0' } group = 'net.frankheijden.serverutils' String dependencyDir = group + '.dependencies' version = '2.5.6' allprojects { ext { cloudVersion = '62e3bc97ef' } } sourceCompatibility = targetCompatibility = JavaVersion.VERSION_1_8 subprojects { apply plugin: 'java' apply plugin: 'checkstyle' apply plugin: 'com.github.johnrengelman.shadow' sourceCompatibility = targetCompatibility = JavaVersion.VERSION_1_8 repositories { mavenCentral() maven { url 'https://jitpack.io' } maven { url 'https://repo.incendo.org/content/repositories/snapshots' } maven { url 'https://papermc.io/repo/repository/maven-public/' } maven { url 'https://libraries.minecraft.net' } } dependencies { implementation "com.github.FrankHeijden.cloud:cloud-core:${rootProject.cloudVersion}" implementation "com.github.FrankHeijden.cloud:cloud-brigadier:${rootProject.cloudVersion}" implementation 'com.github.FrankHeijden:MinecraftReflection:1.0.0' implementation ('net.kyori:adventure-text-minimessage:4.1.0-SNAPSHOT') { exclude group: 'net.kyori', module: 'adventure-api' } implementation 'com.google.guava:guava:30.1.1-jre' implementation 'com.google.code.gson:gson:2.8.6' implementation 'me.lucko:commodore:1.10' compileOnly 'com.mojang:brigadier:1.0.17' testCompile 'org.assertj:assertj-core:3.18.1' testCompile 'org.junit.jupiter:junit-jupiter-api:5.7.0' testCompile 'org.junit.jupiter:junit-jupiter-params:5.7.0' testCompile 'org.junit.jupiter:junit-jupiter-engine:5.7.0' } compileJava { options.compilerArgs += ["-parameters"] options.fork = true options.forkOptions.executable = 'javac' } test { useJUnitPlatform() } checkstyle { toolVersion "8.38" configFile = file("${rootDir}/config/checkstyle/checkstyle.xml") ignoreFailures = false maxErrors = 0 maxWarnings = 0 } shadowJar { exclude 'com/mojang/**' exclude 'javax/annotation/**' exclude 'org/checkerframework/**' exclude 'com/google/errorprone/**' exclude 'com/google/j2objc/**' exclude 'com/google/thirdparty/**' exclude 'com/google/common/annotations/**' exclude 'com/google/common/base/**' exclude 'com/google/common/cache/**' exclude 'com/google/common/collect/**' exclude 'com/google/common/escape/**' exclude 'com/google/common/eventbus/**' exclude 'com/google/common/hash/**' exclude 'com/google/common/html/**' exclude 'com/google/common/io/**' exclude 'com/google/common/math/**' exclude 'com/google/common/net/**' exclude 'com/google/common/primitives/**' exclude 'com/google/common/reflect/**' exclude 'com/google/common/util/**' exclude 'com/google/common/xml/**' relocate 'com.google.gson', dependencyDir + '.gson' relocate 'com.google.common.graph', dependencyDir + '.common.graph' relocate 'dev.frankheijden.minecraftreflection', dependencyDir + '.minecraftreflection' relocate 'cloud.commandframework', dependencyDir + '.cloud' relocate 'me.lucko.commodore', dependencyDir + '.commodore' relocate 'io.leangen.geantyref', dependencyDir + '.typetoken' } shadowJar.dependsOn checkstyleMain, checkstyleTest, test } repositories { mavenCentral() } dependencies { implementation project(path: ':Common', configuration: 'shadow') implementation project(path: ':Bukkit', configuration: 'shadow') implementation project(path: ':Bungee', configuration: 'shadow') implementation project(path: ':Velocity', configuration: 'shadow') } shadowJar { relocate 'org.apache.commons.codec', dependencyDir + '.codec' relocate 'dev.frankheijden.minecraftreflection', dependencyDir + '.minecraftreflection' archiveFileName = "${archiveBaseName.orNull}-${archiveVersion.orNull}.${archiveExtension.orNull}" } def outputTasks() { [ "shadowJar", ":Bukkit:shadowJar", ":Bungee:shadowJar", ":Velocity:shadowJar", ].stream().map({ tasks.findByPath(it) }) } task copyJars(type: Copy) { outputTasks().forEach({ from(it) }) rename '(.*)-all.jar', '$1.jar' into file('jars') } task cleanJars() { delete file('jars') } clean.dependsOn cleanJars build.dependsOn shadowJar build.dependsOn copyJars