fix and upgrade gradle

This commit is contained in:
stefan
2025-05-08 16:21:43 +02:00
parent 1d18243658
commit bd399fdcd3
20 changed files with 161 additions and 420 deletions
+39 -35
View File
@@ -1,7 +1,7 @@
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
plugins {
alias(libs.plugins.kotlinJvm)
alias(libs.plugins.kotlin.jvm)
alias(libs.plugins.ktor)
application
}
@@ -12,8 +12,11 @@ version = "1.0.0"
// Enable Gradle caching and parallel execution for better build performance
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
compilerOptions {
jvmTarget.set(JvmTarget.JVM_21) // Set appropriate JVM target
freeCompilerArgs.set(listOf("-Xjsr305=strict", "-opt-in=kotlin.RequiresOptIn"))
jvmTarget.set(JvmTarget.JVM_21)
freeCompilerArgs = listOf(
"-Xjsr305=strict",
"-opt-in=kotlin.RequiresOptIn"
)
}
}
@@ -22,65 +25,66 @@ application {
mainClass.set("at.mocode.server.ApplicationKt")
applicationDefaultJvmArgs = listOf(
"-Dio.ktor.development=${extra["io.ktor.development"] ?: "false"}",
// "-XX:+UseG1GC", // Use G1 Garbage Collector
// "-XX:MaxGCPauseMillis=100", // Target max GC pause time
// "-Djava.awt.headless=true" // Headless mode for server
"-XX:+UseG1GC", // Use G1 Garbage Collector
"-XX:MaxGCPauseMillis=100", // Target max GC pause time
"-Djava.awt.headless=true" // Headless mode for server
)
}
// Configure tests
tasks.withType<Test> {
useJUnitPlatform() // Use JUnit 5 platform
testLogging {
events("passed", "skipped", "failed")
}
// Parallel test execution if tests are independent
maxParallelForks = (Runtime.getRuntime().availableProcessors() / 2).takeIf { it > 0 } ?: 1
}
dependencies {
// Project dependencies
// Projekt-Abhängigkeiten
implementation(projects.shared)
// Kotlin and related libraries
// Kotlin und verwandte Bibliotheken
implementation(libs.kotlinx.serialization.json)
implementation(libs.kotlinx.datetime)
implementation(libs.uuid)
implementation(libs.bignum)
// Ktor server components
// Ktor Server-Komponenten
implementation(libs.ktor.server.core)
implementation(libs.ktor.server.netty)
implementation(libs.ktor.server.config.yaml)
implementation(libs.ktor.server.html.builder)
// Ktor server plugins
implementation("io.ktor:ktor-server-content-negotiation:${libs.versions.ktor.get()}")
implementation("io.ktor:ktor-serialization-kotlinx-json:${libs.versions.ktor.get()}")
implementation("io.ktor:ktor-server-cors:${libs.versions.ktor.get()}")
implementation("io.ktor:ktor-server-call-logging:${libs.versions.ktor.get()}")
implementation("io.ktor:ktor-server-default-headers:${libs.versions.ktor.get()}")
implementation("io.ktor:ktor-server-status-pages:${libs.versions.ktor.get()}")
implementation("io.ktor:ktor-server-auth:${libs.versions.ktor.get()}")
implementation("io.ktor:ktor-server-auth-jwt:${libs.versions.ktor.get()}")
// Ktor Server-Plugins
implementation(libs.ktor.server.contentNegotiation)
implementation(libs.ktor.server.serializationKotlinxJson)
implementation(libs.ktor.server.cors)
implementation(libs.ktor.server.callLogging)
implementation(libs.ktor.server.defaultHeaders)
implementation(libs.ktor.server.statusPages)
implementation(libs.ktor.server.auth)
implementation(libs.ktor.server.authJwt)
// Database - Exposed ORM
// Datenbank - Exposed ORM
implementation(libs.exposed.core)
implementation(libs.exposed.dao)
implementation(libs.exposed.jdbc)
implementation(libs.exposed.kotlin.datetime)
implementation(libs.exposed.kotlinDatetime)
// Connection pooling
// Connection Pooling
implementation(libs.hikari.cp)
// Logging
implementation(libs.logback)
// Database drivers
runtimeOnly(libs.postgresql.driver) // Production
runtimeOnly(libs.h2.driver) // Development and testing
// Datenbanktreiber
runtimeOnly(libs.postgresql.driver)
runtimeOnly(libs.h2.driver)
// Testing
testImplementation(libs.ktor.server.tests)
testImplementation(libs.kotlin.test.junit)
testImplementation(libs.junit.jupiter)
testImplementation(libs.junitJupiter)
}
// Configure tests
tasks.withType<Test> {
useJUnitPlatform()
testLogging {
events("passed", "skipped", "failed")
}
maxParallelForks = (Runtime.getRuntime().availableProcessors() / 2).takeIf { it > 0 } ?: 1
}