71 lines
2.0 KiB
Kotlin
71 lines
2.0 KiB
Kotlin
plugins {
|
|
alias(libs.plugins.kotlinJvm)
|
|
alias(libs.plugins.kotlinSerialization)
|
|
alias(libs.plugins.ktor)
|
|
alias(libs.plugins.flywayPlugin)
|
|
alias(libs.plugins.koin.compiler)
|
|
application
|
|
id("recipe.quality")
|
|
}
|
|
|
|
group = "dev.ulfrx.recipe"
|
|
version = "1.0.0"
|
|
|
|
kotlin {
|
|
jvmToolchain(21)
|
|
compilerOptions {
|
|
allWarningsAsErrors.set(true)
|
|
}
|
|
}
|
|
|
|
tasks.test {
|
|
useJUnitPlatform()
|
|
}
|
|
|
|
application {
|
|
mainClass.set("dev.ulfrx.recipe.ApplicationKt")
|
|
|
|
val isDevelopment: Boolean = project.ext.has("development")
|
|
applicationDefaultJvmArgs = listOf("-Dio.ktor.development=$isDevelopment")
|
|
}
|
|
|
|
dependencies {
|
|
implementation(libs.ktor.serverCore)
|
|
implementation(libs.ktor.serverNetty)
|
|
implementation(libs.ktor.serverContentNegotiation)
|
|
implementation(libs.ktor.serializationKotlinxJson)
|
|
implementation(libs.kotlinx.serializationJson)
|
|
implementation(libs.logback)
|
|
implementation(libs.flyway.core)
|
|
implementation(libs.flyway.database.postgresql)
|
|
implementation(libs.postgresql)
|
|
implementation(projects.shared)
|
|
|
|
implementation(libs.ktor.serverAuth)
|
|
implementation(libs.ktor.serverAuthJwt)
|
|
implementation(libs.ktor.serverCallLogging)
|
|
implementation(libs.ktor.serverStatusPages)
|
|
|
|
// Phase 2: Exposed DSL + Hikari connection pool (D-26).
|
|
implementation(libs.exposed.core)
|
|
implementation(libs.exposed.jdbc)
|
|
implementation(libs.exposed.java.time)
|
|
implementation(libs.hikari)
|
|
|
|
testImplementation(libs.ktor.serverTestHost)
|
|
testImplementation(libs.kotlin.testJunit5)
|
|
|
|
testImplementation(libs.testcontainers.postgresql)
|
|
testImplementation(libs.testcontainers.junit.jupiter)
|
|
}
|
|
|
|
flyway {
|
|
url = System.getenv("DATABASE_URL") ?: "jdbc:postgresql://localhost:5432/recipe"
|
|
user = System.getenv("DATABASE_USER") ?: "recipe"
|
|
password = System.getenv("DATABASE_PASSWORD") ?: "recipe"
|
|
locations = arrayOf("classpath:db/migration")
|
|
cleanDisabled = true
|
|
baselineOnMigrate = true
|
|
validateOnMigrate = true
|
|
}
|