import com.github.jengelman.gradle.plugins.shadow.transformers.Log4j2PluginsCacheFileTransformer plugins { id 'java' id 'checkstyle' } apply from: '../gradle/checkstyle.gradle' apply plugin: 'com.github.johnrengelman.shadow' java { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } jar { manifest { def buildNumber = System.getenv("BUILD_NUMBER") ?: "unknown" def version if (project.version.endsWith("-SNAPSHOT")) { version = "${project.version} (git-${project.ext.getCurrentShortRevision()}-b${buildNumber})" } 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' } } shadowJar { transform(Log4j2PluginsCacheFileTransformer) } tasks.withType(Checkstyle) { exclude('**/com/velocitypowered/proxy/protocol/packet/*.java') } dependencies { // Note: we depend on the API twice, first the main sourceset, and then the annotation processor. implementation project(':velocity-api') implementation project(':velocity-api').sourceSets.ap.output implementation project(':velocity-native') 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-api:${log4jVersion}" 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 'net.kyori:event-method-asm:4.0.0-SNAPSHOT' implementation(platform("net.kyori:adventure-bom:${adventureVersion}")) implementation("net.kyori:adventure-nbt") 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' compileOnly 'com.github.spotbugs:spotbugs-annotations:4.1.2' testImplementation "org.junit.jupiter:junit-jupiter-api:${junitVersion}" testImplementation "org.junit.jupiter:junit-jupiter-engine:${junitVersion}" } test { useJUnitPlatform() } 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/*Int2*' 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/IntSet*' 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/*Object*OpenCustom*' 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 }