val logback_version: String by project val prometeus_version: String by project val exposed_version: String by project val h2_version: String by project plugins { kotlin("jvm") version "1.9.22" id("io.ktor.plugin") version "2.3.8" id("org.jetbrains.kotlin.plugin.serialization") version "1.9.22" id("com.google.protobuf") version "0.9.4" } group = "dev.usbharu" version = "0.0.1" application { mainClass.set("io.ktor.server.netty.EngineMain") val isDevelopment: Boolean = project.ext.has("development") applicationDefaultJvmArgs = listOf("-Dio.ktor.development=$isDevelopment") } repositories { mavenCentral() } dependencies { implementation("io.ktor:ktor-server-core-jvm") implementation("io.ktor:ktor-server-partial-content-jvm") implementation("io.ktor:ktor-server-metrics-micrometer-jvm") implementation("io.micrometer:micrometer-registry-prometheus:1.12.3") implementation("io.ktor:ktor-server-content-negotiation-jvm") implementation("io.ktor:ktor-serialization-kotlinx-json-jvm") implementation("org.jetbrains.exposed:exposed-core:0.48.0") implementation("org.jetbrains.exposed:exposed-jdbc:0.48.0") implementation("com.h2database:h2:2.2.224") implementation("io.ktor:ktor-server-netty-jvm") implementation("io.grpc:grpc-kotlin-stub:1.4.1") implementation("io.grpc:grpc-protobuf:1.61.1") implementation("com.google.protobuf:protobuf-kotlin:3.25.3") implementation("io.grpc:grpc-netty:1.61.1") implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.0") testImplementation("io.ktor:ktor-server-tests-jvm") testImplementation("org.jetbrains.kotlin:kotlin-test-junit:1.9.22") protobuf(files("../unos-proto/src/main/proto")) implementation("software.amazon.awssdk:s3:2.25.16") } protobuf { protoc { artifact = "com.google.protobuf:protoc:3.25.3" } plugins { create("grpc") { artifact = "io.grpc:protoc-gen-grpc-java:1.61.1" } create("grpckt") { artifact = "io.grpc:protoc-gen-grpc-kotlin:1.4.1:jdk8@jar" } } generateProtoTasks { all().forEach { it.plugins { create("grpc") create("grpckt") } it.builtins { create("kotlin") } } } }