Files
Staff-OG/build.gradle.kts

96 lines
2.5 KiB
Kotlin

import com.google.protobuf.gradle.id
plugins {
kotlin("jvm") version "2.3.20"
eclipse
id("com.gradleup.shadow") version "8.3.9"
id("com.google.protobuf") version "0.10.0"
}
repositories {
mavenCentral()
maven("https://repo.papermc.io/repository/maven-public/")
}
dependencies {
compileOnly("io.papermc.paper:paper-api:1.19.4-R0.1-SNAPSHOT")
compileOnly("org.apache.logging.log4j:log4j-core:2.26.0")
implementation("com.google.protobuf:protobuf-kotlin:4.34.1")
implementation("io.grpc:grpc-stub:1.81.0")
implementation("io.grpc:grpc-kotlin-stub:1.5.0")
implementation("io.grpc:grpc-netty-shaded:1.81.0")
implementation("io.grpc:grpc-protobuf:1.81.0")
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2")
}
sourceSets {
main {
java {
srcDirs("build/generated/source/proto/main/grpc")
srcDirs("build/generated/source/proto/main/grpckt")
srcDirs("build/generated/source/proto/main/java")
}
}
}
protobuf {
protoc {
artifact = "com.google.protobuf:protoc:4.34.1"
}
plugins {
id("grpc") {
artifact = "io.grpc:protoc-gen-grpc-java:1.81.0"
}
id("grpckt") {
artifact = "io.grpc:protoc-gen-grpc-kotlin:1.5.0:jdk8@jar"
}
}
generateProtoTasks {
ofSourceSet("main").forEach {
it.plugins {
// Apply the "grpc" plugin whose spec is defined above, without options.
id("grpc")
id("grpckt")
}
it.builtins {
id("kotlin")
}
}
}
}
kotlin {
jvmToolchain(17)
}
tasks {
build {
dependsOn(shadowJar)
}
processResources {
val props = mapOf("version" to version)
filesMatching("plugin.yml") {
expand(props)
}
}
shadowJar {
archiveClassifier.set("") // Use empty string instead of null.
isEnableRelocation = true
relocationPrefix = "${project.group}.shadow"
exclude("io.github.miniplaceholders.*") // Exclude the MiniPlaceholders package from being shadowed.
exclude("natives/**")
mergeServiceFiles()
minimize {
exclude(dependency("org.slf4j:slf4j-nop:.*"))
exclude(dependency("io.grpc:grpc-netty-shaded:.*"))
}
}
jar { archiveClassifier.set("part") }
build { dependsOn(shadowJar) }
}