plugins { alias(libs.plugins.kotlinJvm) alias(libs.plugins.kotlinSerialization) alias(libs.plugins.ktor) alias(libs.plugins.flywayPlugin) application id("recipe.quality") } group = "dev.ulfrx.recipe" version = "1.0.0" kotlin { jvmToolchain(21) compilerOptions { allWarningsAsErrors.set(true) } } 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.logback) implementation(libs.flyway.core) implementation(libs.flyway.database.postgresql) implementation(libs.postgresql) implementation(projects.shared) testImplementation(libs.ktor.serverTestHost) testImplementation(libs.kotlin.testJunit) } 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 }