import com.github.jengelman.gradle.plugins.shadow.transformers.Log4j2PluginsCacheFileTransformer plugins { id 'java' id 'checkstyle' } apply plugin: 'org.cadixdev.licenser' apply from: '../gradle/checkstyle.gradle' apply from: '../gradle/errorprone.gradle' apply plugin: 'com.github.johnrengelman.shadow' license { header = project.rootProject.file('HEADER.txt') } java { sourceCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11 } test { useJUnitPlatform() } jar { manifest { def buildNumber = System.getenv("BUILD_NUMBER") def version if (project.version.endsWith("-SNAPSHOT")) { if (buildNumber != null) { version = "${project.version}+g${project.ext.getCurrentShortRevision()}-b${buildNumber}" } else { version = "${project.version}+g${project.ext.getCurrentShortRevision()}" } } else { version = "${project.version}" } attributes 'Main-Class': 'com.velocitypowered.proxy.Velocity' attributes 'Implementation-Title': "Velocity" attributes 'Implementation-Version': version attributes 'Implementation-Vendor': "Velocity Contributors" attributes 'Multi-Release': 'true' attributes 'Add-Opens': 'java.base/java.lang' } } shadowJar { transform(Log4j2PluginsCacheFileTransformer) } tasks.withType(Checkstyle) { exclude('**/com/velocitypowered/proxy/protocol/packet/*.java') } dependencies { compileOnly "com.github.spotbugs:spotbugs-annotations:4.1.2" implementation project(':velocity-api') implementation project(':velocity-annotation-processor') implementation project(':velocity-native') implementation project(':velocity-proxy-core') implementation "io.netty:netty-codec:${nettyVersion}" implementation "io.netty:netty-codec-haproxy:${nettyVersion}" implementation "io.netty:netty-codec-http:${nettyVersion}" implementation "io.netty:netty-handler:${nettyVersion}" implementation "io.netty:netty-transport-native-epoll:${nettyVersion}" implementation "io.netty:netty-transport-native-epoll:${nettyVersion}:linux-x86_64" implementation "io.netty:netty-transport-native-epoll:${nettyVersion}:linux-aarch_64" implementation "org.apache.logging.log4j:log4j-core:${log4jVersion}" implementation "org.apache.logging.log4j:log4j-slf4j-impl:${log4jVersion}" implementation "org.apache.logging.log4j:log4j-iostreams:${log4jVersion}" implementation "org.apache.logging.log4j:log4j-jul:${log4jVersion}" implementation 'net.sf.jopt-simple:jopt-simple:5.0.4' // command-line options implementation 'net.minecrell:terminalconsoleappender:1.2.0' runtimeOnly 'org.jline:jline-terminal-jansi:3.16.0' // Needed for JLine runtimeOnly 'com.lmax:disruptor:3.4.2' // Async loggers implementation 'it.unimi.dsi:fastutil:8.4.1' implementation 'org.asynchttpclient:async-http-client:2.12.1' implementation 'com.spotify:completable-futures:0.3.3' implementation 'com.electronwill.night-config:toml:3.6.3' implementation 'org.bstats:bstats-base:2.2.0' testImplementation "org.junit.jupiter:junit-jupiter-api:${junitVersion}" testImplementation "org.junit.jupiter:junit-jupiter-engine:${junitVersion}" } shadowJar { exclude 'it/unimi/dsi/fastutil/booleans/**' exclude 'it/unimi/dsi/fastutil/bytes/**' exclude 'it/unimi/dsi/fastutil/chars/**' exclude 'it/unimi/dsi/fastutil/doubles/**' exclude 'it/unimi/dsi/fastutil/floats/**' exclude 'it/unimi/dsi/fastutil/ints/*Int2Boolean*' exclude 'it/unimi/dsi/fastutil/ints/*Int2Byte*' exclude 'it/unimi/dsi/fastutil/ints/*Int2Char*' exclude 'it/unimi/dsi/fastutil/ints/*Int2Double*' exclude 'it/unimi/dsi/fastutil/ints/*Int2Float*' exclude 'it/unimi/dsi/fastutil/ints/*Int2Int*' exclude 'it/unimi/dsi/fastutil/ints/*Int2Long*' exclude 'it/unimi/dsi/fastutil/ints/*Int2Short*' exclude 'it/unimi/dsi/fastutil/ints/IntAVL*' exclude 'it/unimi/dsi/fastutil/ints/IntArray*' exclude 'it/unimi/dsi/fastutil/ints/IntBi*' exclude 'it/unimi/dsi/fastutil/ints/IntLinked*' exclude 'it/unimi/dsi/fastutil/ints/IntList*' exclude 'it/unimi/dsi/fastutil/ints/IntOpen*' exclude 'it/unimi/dsi/fastutil/ints/IntRB*' exclude 'it/unimi/dsi/fastutil/ints/IntSorted*' exclude 'it/unimi/dsi/fastutil/ints/*Priority*' exclude 'it/unimi/dsi/fastutil/ints/*BigList*' exclude 'it/unimi/dsi/fastutil/io/**' exclude 'it/unimi/dsi/fastutil/longs/**' exclude 'it/unimi/dsi/fastutil/objects/*ObjectArray*' exclude 'it/unimi/dsi/fastutil/objects/*ObjectAVL*' exclude 'it/unimi/dsi/fastutil/objects/*Object*Big*' exclude 'it/unimi/dsi/fastutil/objects/*Object2Boolean*' exclude 'it/unimi/dsi/fastutil/objects/*Object2Byte*' exclude 'it/unimi/dsi/fastutil/objects/*Object2Char*' exclude 'it/unimi/dsi/fastutil/objects/*Object2Double*' exclude 'it/unimi/dsi/fastutil/objects/*Object2Float*' exclude 'it/unimi/dsi/fastutil/objects/*Object2IntArray*' exclude 'it/unimi/dsi/fastutil/objects/*Object2IntAVL*' exclude 'it/unimi/dsi/fastutil/objects/*Object2IntRB*' exclude 'it/unimi/dsi/fastutil/objects/*Object2Long*' exclude 'it/unimi/dsi/fastutil/objects/*Object2Object*' exclude 'it/unimi/dsi/fastutil/objects/*Object2Reference*' exclude 'it/unimi/dsi/fastutil/objects/*Object2Short*' exclude 'it/unimi/dsi/fastutil/objects/*ObjectRB*' exclude 'it/unimi/dsi/fastutil/objects/*Reference*' exclude 'it/unimi/dsi/fastutil/shorts/**' exclude 'org/checkerframework/checker/**' relocate 'org.bstats', 'com.velocitypowered.proxy.bstats' } artifacts { archives shadowJar }