115 lines
3.0 KiB
Kotlin
115 lines
3.0 KiB
Kotlin
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
|
|
|
|
plugins {
|
|
alias(libs.plugins.jvm)
|
|
alias(libs.plugins.ktor)
|
|
alias(libs.plugins.serialization)
|
|
}
|
|
|
|
group = "com.jaytux.phoebench"
|
|
version = rootProject.version
|
|
|
|
repositories {
|
|
mavenCentral()
|
|
}
|
|
|
|
val versionDirectory = layout.buildDirectory.dir("generated/sources/version")
|
|
val generateVersion = tasks.register<Task>("serverVersion") {
|
|
doFirst {
|
|
val outFile = versionDirectory.get().file("com/jaytux/phoebench/server/Version.kt").asFile
|
|
outFile.parentFile.mkdirs()
|
|
outFile.writeText("""
|
|
package com.jaytux.phoebench.server
|
|
|
|
object ServerVersion {
|
|
const val VERSION="${rootProject.version}"
|
|
}
|
|
""".trimIndent())
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
implementation(libs.exposed.core)
|
|
implementation(libs.exposed.dao)
|
|
implementation(libs.exposed.jdbc)
|
|
implementation(libs.exposed.migration)
|
|
implementation(libs.exposed.migration.jdbc)
|
|
implementation(libs.exposed.kotlin.datetime)
|
|
implementation(libs.kotlinx.datetime)
|
|
|
|
implementation(libs.ktor.client.core)
|
|
implementation(libs.ktor.client.logging)
|
|
|
|
implementation(libs.ktor.server.content.negotiation)
|
|
implementation(libs.ktor.server.core)
|
|
implementation(libs.ktor.server.openapi)
|
|
implementation(libs.ktor.server.auto.head.response)
|
|
implementation(libs.ktor.server.netty)
|
|
implementation(libs.ktor.server.config.yaml)
|
|
implementation(libs.ktor.server.test.host)
|
|
implementation(libs.ktor.server.auth)
|
|
implementation(libs.ktor.server.auth.jwt)
|
|
implementation(libs.ktor.server.call.logging)
|
|
implementation(libs.ktor.server.cors)
|
|
implementation(libs.ktor.server.status.pages)
|
|
implementation(libs.ktor.server.sse)
|
|
|
|
implementation(libs.ktor.serialization.kotlinx.json)
|
|
|
|
implementation(libs.dotenv)
|
|
implementation(libs.json)
|
|
implementation(libs.kotlinx.datetime)
|
|
implementation(libs.kotlinx.serialization)
|
|
implementation(libs.kotlinx.serialization.json)
|
|
implementation(libs.ksoup)
|
|
implementation(libs.slf4j.simple)
|
|
implementation(libs.mariadb)
|
|
implementation(libs.sqlite)
|
|
implementation(libs.spring.security.core)
|
|
|
|
implementation(project(":common"))
|
|
}
|
|
|
|
tasks.test {
|
|
useJUnitPlatform()
|
|
}
|
|
kotlin {
|
|
jvmToolchain(21)
|
|
compilerOptions {
|
|
freeCompilerArgs.add("-Xcontext-parameters")
|
|
optIn.add("kotlin.uuid.ExperimentalUuidApi")
|
|
}
|
|
|
|
sourceSets {
|
|
val main by getting {
|
|
kotlin {
|
|
srcDir(versionDirectory)
|
|
}
|
|
}
|
|
}
|
|
|
|
tasks.compileKotlin {
|
|
dependsOn(generateVersion)
|
|
}
|
|
}
|
|
|
|
application {
|
|
mainClass = "io.ktor.server.netty.EngineMain"
|
|
}
|
|
|
|
tasks.withType<Jar> {
|
|
manifest {
|
|
attributes["Main-Class"] = application.mainClass
|
|
}
|
|
duplicatesStrategy = DuplicatesStrategy.WARN
|
|
}
|
|
|
|
ktor {
|
|
fatJar {
|
|
}
|
|
}
|
|
|
|
tasks.withType<ShadowJar> {
|
|
mergeServiceFiles()
|
|
append("reference.conf")
|
|
} |