plugins { id 'java-library' id 'maven-publish' id 'com.github.johnrengelman.shadow' version '8.1.1' } group = 'com.comphenix.protocol' version = '5.0.0-SNAPSHOT' description = 'Provides access to the Minecraft protocol' def isSnapshot = version.endsWith('-SNAPSHOT') repositories { // mavenLocal() // can speed up build, but may fail in CI mavenCentral() maven { url 'https://repo.dmulloy2.net/repository/public/' } maven { url 'https://hub.spigotmc.org/nexus/content/groups/public/' } maven { url 'https://repo.papermc.io/repository/maven-public/' } maven { url 'https://libraries.minecraft.net/' metadataSources { mavenPom() artifact() ignoreGradleMetadataRedirection() } } } dependencies { implementation 'net.bytebuddy:byte-buddy:1.14.3' compileOnly 'dev.folia:folia-api:1.19.4-R0.1-SNAPSHOT' compileOnly 'org.spigotmc:spigot-api:1.19.4-R0.1-SNAPSHOT' compileOnly 'org.spigotmc:spigot:1.19.4-R0.1-SNAPSHOT' compileOnly 'io.netty:netty-all:4.0.23.Final' compileOnly 'net.kyori:adventure-text-serializer-gson:4.13.0' compileOnly 'com.googlecode.json-simple:json-simple:1.1.1' testImplementation 'org.junit.jupiter:junit-jupiter-engine:5.9.2' testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.9.2' testImplementation 'org.mockito:mockito-core:4.11.0' testImplementation 'org.mockito:mockito-inline:4.11.0' testImplementation 'io.netty:netty-common:4.1.77.Final' testImplementation 'io.netty:netty-transport:4.1.77.Final' testImplementation 'org.spigotmc:spigot:1.19.4-R0.1-SNAPSHOT' } java { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_17 withJavadocJar() withSourcesJar() } shadowJar { dependencies { include(dependency('net.bytebuddy:byte-buddy:.*')) } relocate 'net.bytebuddy', 'com.comphenix.net.bytebuddy' archiveFileName = 'ProtocolLib.jar' } test { useJUnitPlatform() } processResources { def includeBuild = isSnapshot && System.getenv('BUILD_NUMBER') def fullVersion = includeBuild ? version + '-' + System.getenv('BUILD_NUMBER') : version eachFile { expand(['version': fullVersion]) } } publishing { publications { mavenJava(MavenPublication) { from components.java afterEvaluate { artifactId = 'ProtocolLib' } } } repositories { maven { url isSnapshot ? 'https://repo.dmulloy2.net/repository/snapshots/' : 'https://repo.dmulloy2.net/repository/releases/' credentials { username project.nexusUsername password project.nexusPassword } } } } tasks.withType(JavaCompile) { options.encoding = 'UTF-8' } tasks.withType(Javadoc) { options.encoding = 'UTF-8' }