plugins { id "java" 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" } 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.0-1.20-pre7-SNAPSHOT" include("com.viaversion:viabackwards-common:4.7.0-1.20-pre5-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.17-SNAPSHOT" include "net.raphimc:ViaAprilFools:2.0.7-SNAPSHOT" include("net.raphimc:ViaBedrock:0.0.1-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.5-SNAPSHOT") { exclude group: "org.slf4j", module: "slf4j-api" exclude group: "org.yaml", module: "snakeyaml" } include "org.yaml:snakeyaml:1.33" // Geyser does not run with 2.0 include "com.google.code.gson:gson:2.10.1" include "com.formdev:flatlaf:3.1.1" include "com.google.guava:guava:31.1-jre" include "org.apache.commons:commons-lang3:3.12.0" include "commons-io:commons-io:2.12.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.1.0" include "net.lenni0451:LambdaEvents:2.0.3" include "net.raphimc.netminecraft:all:2.3.3" include("net.raphimc:MinecraftAuth:2.1.3") { 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" } } blossom { replaceToken("\${version}", project.version, "src/main/java/net/raphimc/viaproxy/ViaProxy.java") } java { withSourcesJar() } 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": "net.raphimc.viaproxy.ViaProxy", "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 } } }