geforkt von Mirrors/Velocity
d1736bf94c
The most significant advantage is that Velocity gets a well-tested HTTP client implementation which also includes a connection pool, allowing us to avoid the overhead of TCP and TLS handshakes upon each login. Unfortunately, Async HTTP Client does not work with the kqueue transport. Since almost nobody runs a production Velocity server on macOS, we have decided to remove kqueue support. The benefits that Async HTTP Client provides outweigh the disadvantages of not having a macOS native transport. macOS is adequately supported by the normal NIO transport.
119 Zeilen
4.7 KiB
Groovy
119 Zeilen
4.7 KiB
Groovy
import com.github.jengelman.gradle.plugins.shadow.transformers.Log4j2PluginsCacheFileTransformer
|
|
|
|
plugins {
|
|
id 'java'
|
|
id 'checkstyle'
|
|
id "net.ltgt.errorprone" version "0.8"
|
|
}
|
|
|
|
apply from: '../gradle/checkstyle.gradle'
|
|
apply from: '../gradle/errorprone.gradle'
|
|
apply plugin: 'com.github.johnrengelman.shadow'
|
|
|
|
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.
|
|
compile project(':velocity-api')
|
|
compile project(':velocity-api').sourceSets.ap.output
|
|
compile project(':velocity-native')
|
|
|
|
compile "io.netty:netty-codec:${nettyVersion}"
|
|
compile "io.netty:netty-codec-haproxy:${nettyVersion}"
|
|
compile "io.netty:netty-codec-http:${nettyVersion}"
|
|
compile "io.netty:netty-handler:${nettyVersion}"
|
|
compile "io.netty:netty-transport-native-epoll:${nettyVersion}"
|
|
compile "io.netty:netty-transport-native-epoll:${nettyVersion}:linux-x86_64"
|
|
compile "io.netty:netty-resolver-dns:${nettyVersion}"
|
|
|
|
compile "org.apache.logging.log4j:log4j-api:${log4jVersion}"
|
|
compile "org.apache.logging.log4j:log4j-core:${log4jVersion}"
|
|
compile "org.apache.logging.log4j:log4j-slf4j-impl:${log4jVersion}"
|
|
compile "org.apache.logging.log4j:log4j-iostreams:${log4jVersion}"
|
|
|
|
compile 'net.sf.jopt-simple:jopt-simple:5.0.4' // command-line options
|
|
compile 'net.minecrell:terminalconsoleappender:1.2.0'
|
|
runtime 'org.jline:jline-terminal-jansi:3.12.1' // Needed for JLine
|
|
runtime 'com.lmax:disruptor:3.4.2' // Async loggers
|
|
|
|
compile 'it.unimi.dsi:fastutil:8.2.3'
|
|
compile 'net.kyori:event-method-asm:3.0.0'
|
|
|
|
compile 'com.mojang:brigadier:1.0.15'
|
|
|
|
compile 'org.asynchttpclient:async-http-client:2.10.1'
|
|
|
|
testCompile "org.junit.jupiter:junit-jupiter-api:${junitVersion}"
|
|
testCompile "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/*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/**'
|
|
}
|
|
|
|
artifacts {
|
|
archives shadowJar
|
|
}
|