kotlin/sync-api/build.gradle.kts (47 lines of code) (raw):

import org.jetbrains.kotlin.gradle.tasks.KotlinCompile val ktorVersion: String by project val kotlinVersion: String by project val logbackVersion: String by project val spaceSdkVersion: String by project val exposedVersion: String by project val hikariVersion: String by project val postgresqlDriverVersion: String by project plugins { kotlin("jvm") version "1.8.20" id("io.ktor.plugin") version "2.3.0" id("com.avast.gradle.docker-compose") version "0.16.2" application } group = "com.example" version = "1.0-SNAPSHOT" application { mainClass.set("io.ktor.server.netty.EngineMain") val isDevelopment: Boolean = project.ext.has("development") applicationDefaultJvmArgs = listOf("-Dio.ktor.development=$isDevelopment") } repositories { maven("https://maven.pkg.jetbrains.space/public/p/space/maven") mavenCentral() } dependencies { implementation("io.ktor:ktor-server-core-jvm:$ktorVersion") implementation("io.ktor:ktor-server-netty-jvm:$ktorVersion") implementation("ch.qos.logback:logback-classic:$logbackVersion") implementation("io.ktor:ktor-client-core:$ktorVersion") implementation("io.ktor:ktor-client-cio:$ktorVersion") // Space SDK implementation("org.jetbrains:space-sdk-jvm:$spaceSdkVersion") // Exposed is a DB access library by JetBrains implementation("org.jetbrains.exposed:exposed-core:$exposedVersion") implementation("org.jetbrains.exposed:exposed-dao:$exposedVersion") implementation("org.jetbrains.exposed:exposed-jdbc:$exposedVersion") implementation("org.jetbrains.exposed:exposed-java-time:$exposedVersion") // HikariCP is a JDBC connection pool library implementation("com.zaxxer:HikariCP:$hikariVersion") // PostgreSQL JDBC driver implementation("org.postgresql:postgresql:$postgresqlDriverVersion") // Adds ability to respond in HTML implementation("io.ktor:ktor-server-html-builder:$ktorVersion") } // make `run` task dependent on `dockerComposeUp` task tasks { val run by getting(JavaExec::class) dockerCompose.isRequiredBy(run) } // ensure the compiled code is compatible with Java 11 (Space SDK requirement) tasks.withType<KotlinCompile> { kotlinOptions.jvmTarget = "11" }