plugins { id "java" id "application" id "maven-publish" id "net.kyori.blossom" version "1.3.1" } sourceSets { java17compat } java.toolchain.languageVersion = JavaLanguageVersion.of(17) [compileJava, compileTestJava, compileJava17compatJava].each { it.options.encoding = "UTF-8" it.sourceCompatibility = JavaVersion.VERSION_1_8 it.targetCompatibility = JavaVersion.VERSION_1_8 } javadoc.options.encoding = "UTF-8" group = project.maven_group archivesBaseName = project.maven_name version = project.maven_version configurations { include implementation.extendsFrom include api.extendsFrom include } repositories { mavenCentral() maven { name = "Jitpack" url = "https://jitpack.io" } maven { name = "Lenni0451" url "https://maven.lenni0451.net/releases" } maven { name = "Lenni0451 Snapshots" url "https://maven.lenni0451.net/snapshots" } maven { name = "OpenCollab Releases" url = "https://repo.opencollab.dev/maven-releases/" } maven { name = "OpenCollab Snapshots" url = "https://repo.opencollab.dev/maven-snapshots/" } maven { name = "ViaVersion" url "https://repo.viaversion.com" } maven { name = "Minecraft Libraries" url "https://libraries.minecraft.net" } ivy { // This workaround is needed as gradle does not allow to include Java 17 dependencies in a Java 8 project name = "Mojang" url "https://libraries.minecraft.net" patternLayout { artifact MAVEN_ARTIFACT_PATTERN } metadataSources { it.artifact() } content { includeGroup "com/mojang" } } } dependencies { compileOnly sourceSets.java17compat.output include "com.viaversion:viaversion:4.7.1-SNAPSHOT" include("com.viaversion:viabackwards-common:4.7.1-SNAPSHOT") { exclude group: "com.viaversion", module: "viaversion" exclude group: "io.netty", module: "netty-all" exclude group: "com.google.guava", module: "guava" } include "com.viaversion:viarewind-core:2.0.4-SNAPSHOT" include "net.raphimc:ViaLegacy:2.2.18-SNAPSHOT" include "net.raphimc:ViaAprilFools:2.0.7" include("net.raphimc:ViaBedrock:0.0.2-SNAPSHOT") { exclude group: "io.netty", module: "netty-codec-http" exclude group: "io.jsonwebtoken", module: "jjwt-impl" exclude group: "io.jsonwebtoken", module: "jjwt-gson" } include("net.raphimc:ViaLoader:2.2.7") { exclude group: "org.slf4j", module: "slf4j-api" } include "com.google.code.gson:gson:2.10.1" include "com.formdev:flatlaf:3.1.1" include "com.google.guava:guava:32.1.1-jre" include "org.apache.commons:commons-lang3:3.13.0" include "commons-io:commons-io:2.13.0" include "net.sf.jopt-simple:jopt-simple:5.0.4" include "org.apache.logging.log4j:log4j-core:2.20.0" include "org.apache.logging.log4j:log4j-slf4j-impl:2.20.0" include "com/mojang:authlib:3.16.29" include "net.lenni0451.classtransform:mixinstranslator:1.9.1" include "net.lenni0451.classtransform:mixinsdummy:1.9.1" include "net.lenni0451.classtransform:additionalclassprovider:1.9.1" include "net.lenni0451:Reflect:1.2.2" include "net.lenni0451:LambdaEvents:2.1.1" include "net.raphimc.netminecraft:all:2.3.4" include("net.raphimc:MinecraftAuth:2.1.4-SNAPSHOT") { exclude group: "com.google.code.gson", module: "gson" exclude group: "org.slf4j", module: "slf4j-api" } include("net.raphimc.javadowngrader:core:1.0.0-SNAPSHOT") { exclude group: "org.slf4j", module: "slf4j-api" exclude group: "org.ow2.asm", module: "asm-commons" } include("org.cloudburstmc.netty:netty-transport-raknet:1.0.0.CR1-SNAPSHOT") { exclude group: "io.netty", module: "netty-common" exclude group: "io.netty", module: "netty-buffer" exclude group: "io.netty", module: "netty-codec" exclude group: "io.netty", module: "netty-transport" } include "gs.mclo:api:3.0.1" } blossom { replaceToken("\${version}", project.version, "src/main/java/net/raphimc/viaproxy/ViaProxy.java") } java { withSourcesJar() } application { mainClass = "net.raphimc.viaproxy.ViaProxy" } jar { dependsOn configurations.include from { duplicatesStrategy = DuplicatesStrategy.EXCLUDE configurations.include.collect { zipTree(it) } } { exclude "META-INF/*.RSA", "META-INF/*.SF", "META-INF/*.DSA" } manifest { attributes( "Main-Class": application.mainClass, "Multi-Release": "true", "Launcher-Agent-Class": "net.raphimc.viaproxy.ViaProxy" ) } from("LICENSE") { rename { "${it}_${project.archivesBaseName}" } } } publishing { repositories { maven { name = "Via" url = "https://repo.viaversion.com/" credentials(PasswordCredentials) authentication { basic(BasicAuthentication) } } } publications { maven(MavenPublication) { groupId = project.maven_group artifactId = project.maven_name version = project.maven_version from components.java pom { name = "ViaProxy" description = "Standalone proxy which allows players to join EVERY Minecraft server version (Classic, Alpha, Beta, Release, Bedrock)" url = "https://github.com/ViaVersion/ViaProxy" licenses { license { name = "GPL-3.0 License" url = "https://github.com/ViaVersion/ViaProxy/blob/main/LICENSE" } } developers { developer { id = "RK_01" } } scm { connection = "scm:git:git://github.com/ViaVersion/ViaProxy.git" developerConnection = "scm:git:ssh://github.com/ViaVersion/ViaProxy.git" url = "https://github.com/ViaVersion/ViaProxy.git" } } } } }