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") }