backend/build.gradle.kts (56 lines of code) (raw):
import com.google.cloud.tools.jib.gradle.JibTask
plugins {
alias(libs.plugins.kotlinJvm)
alias(libs.plugins.kotlinSerialization)
alias(libs.plugins.ktor)
}
application {
mainClass = "io.ktor.server.netty.EngineMain"
val isDevelopment: Boolean = project.ext.has("development")
applicationDefaultJvmArgs = listOf("-Dio.ktor.development=$isDevelopment")
}
jib {
container {
mainClass = "io.ktor.server.netty.EngineMain"
}
}
dependencies {
implementation(projects.core)
implementation(libs.ktor.server.netty)
implementation(libs.ktor.server.auth)
implementation(libs.ktor.serialization.kotlinx.json)
implementation(libs.ktor.client.cio)
implementation(libs.ktor.client.content.negotiation)
implementation(libs.ktor.server.status.pages)
implementation(libs.ktor.server.default.headers)
implementation(libs.ktor.server.cors)
implementation(libs.ktor.server.content.negotiation)
implementation(libs.ktor.server.call.logging)
implementation(libs.ktor.server.conditional.headers)
implementation(libs.ktor.server.compression)
implementation(libs.ktor.server.partial.content)
implementation(libs.ktor.server.auto.head.response)
implementation(libs.ktor.server.forwarded.header)
implementation(libs.ktor.server.config.yaml)
implementation(libs.ktor.server.swagger)
implementation(libs.kotlinx.serialization.core)
implementation(libs.kotlinx.serialization.json)
implementation(libs.exposed.core)
implementation(libs.exposed.dao)
implementation(libs.exposed.jdbc)
implementation(libs.h2)
implementation(libs.postgresql)
implementation(libs.koin.ktor)
implementation(libs.koin.core)
implementation(libs.koin.slf4j)
implementation(libs.hikaricp)
implementation(libs.logback.classic)
testImplementation(libs.ktor.server.test.host)
testImplementation(libs.kotlin.test)
}
tasks.test {
useJUnitPlatform()
}
tasks.withType<JibTask>().configureEach {
notCompatibleWithConfigurationCache("because https://github.com/GoogleContainerTools/jib/issues/3132")
}