plugins { val kotlinVersion = "2.0.21" id("java") id("application") kotlin("jvm") version kotlinVersion kotlin("plugin.jpa") version kotlinVersion } group = "${project.group}" version = "${project.version}" java { sourceCompatibility = JavaVersion.VERSION_21 } kotlin { jvmToolchain(21) } application { mainClass.set("${"${project.group}.${project.name}".lowercase()}.MainKt") } repositories { mavenCentral() } dependencies { // https://mvnrepository.com/artifact/ch.qos.logback/logback-classic implementation("ch.qos.logback:logback-classic:1.5.12") // https://mvnrepository.com/artifact/org.jetbrains.kotlinx/kotlinx-coroutines-core implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.9.0") // https://mvnrepository.com/artifact/org.jetbrains.kotlin/kotlin-reflect implementation("org.jetbrains.kotlin:kotlin-reflect:2.0.21") // https://mvnrepository.com/artifact/com.google.code.gson/gson implementation("com.google.code.gson:gson:2.11.0") // https://mvnrepository.com/artifact/io.github.cdimascio/dotenv-kotlin implementation("io.github.cdimascio:dotenv-kotlin:6.4.2") // https://mvnrepository.com/artifact/io.insert-koin/koin-core implementation("io.insert-koin:koin-core:4.0.0") kotlin("stdlib") listOf(project(":common"), project(":chatbot"), project(":webserver")).forEach { implementation(it) } } tasks.withType { manifest { attributes["Main-Class"] = application.mainClass } from(sourceSets.main.get().output) dependsOn(configurations.runtimeClasspath) from({ configurations.runtimeClasspath.get().filter { it.name.endsWith("jar") }.map { zipTree(it) } }) duplicatesStrategy = DuplicatesStrategy.EXCLUDE } tasks.named("run") { systemProperty("logback.configurationFile", "logback-debug.xml") }