fix(server, shared): TODO
This commit is contained in:
+60
-20
@@ -1,3 +1,5 @@
|
||||
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
|
||||
|
||||
plugins {
|
||||
alias(libs.plugins.kotlinJvm)
|
||||
alias(libs.plugins.ktor)
|
||||
@@ -6,41 +8,79 @@ plugins {
|
||||
|
||||
group = "at.mocode"
|
||||
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"))
|
||||
}
|
||||
}
|
||||
|
||||
// Configure application
|
||||
application {
|
||||
mainClass.set("at.mocode.ApplicationKt")
|
||||
applicationDefaultJvmArgs = listOf("-Dio.ktor.development=${extra["io.ktor.development"] ?: "false"}")
|
||||
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
|
||||
)
|
||||
}
|
||||
|
||||
// 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 {
|
||||
implementation(project(":shared"))
|
||||
implementation(libs.logback)
|
||||
implementation(libs.ktor.server.core)
|
||||
implementation(libs.ktor.server.netty)
|
||||
implementation(libs.ktor.server.config.yaml)
|
||||
implementation(libs.ktor.server.html.builder)
|
||||
|
||||
// Project dependencies
|
||||
implementation(projects.shared)
|
||||
// Kotlin and related libraries
|
||||
implementation(libs.kotlinx.serialization.json)
|
||||
implementation(libs.kotlinx.datetime)
|
||||
implementation(libs.uuid)
|
||||
implementation(libs.bignum)
|
||||
|
||||
testImplementation(libs.ktor.server.tests)
|
||||
testImplementation(libs.kotlin.test.junit)
|
||||
testImplementation(libs.junit.jupiter)
|
||||
// Ktor server components
|
||||
implementation(libs.ktor.server.core)
|
||||
implementation(libs.ktor.server.netty)
|
||||
implementation(libs.ktor.server.config.yaml)
|
||||
implementation(libs.ktor.server.html.builder)
|
||||
|
||||
// Exposed für Datenbankzugriff (Core, DAO-Pattern, JDBC-Implementierung)
|
||||
// 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()}")
|
||||
|
||||
// Database - Exposed ORM
|
||||
implementation(libs.exposed.core)
|
||||
implementation(libs.exposed.dao)
|
||||
implementation(libs.exposed.jdbc)
|
||||
implementation(libs.exposed.kotlin.datetime)
|
||||
|
||||
// JDBC Treiber für PostgreSQL (nur zur Laufzeit benötigt)
|
||||
runtimeOnly(libs.postgresql.driver)
|
||||
|
||||
// H2 Datenbank für Tests und lokale Entwicklung
|
||||
runtimeOnly(libs.h2.driver)
|
||||
|
||||
// HikariCP für 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
|
||||
|
||||
// Testing
|
||||
testImplementation(libs.ktor.server.tests)
|
||||
testImplementation(libs.kotlin.test.junit)
|
||||
testImplementation(libs.junit.jupiter)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user