2021-10-30 20:24:58 +02:00
|
|
|
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
|
|
|
|
|
2021-10-10 20:20:01 +02:00
|
|
|
plugins {
|
2021-11-10 17:34:01 +01:00
|
|
|
idea
|
2021-10-10 20:20:01 +02:00
|
|
|
`kotlin-dsl`
|
2021-12-22 22:45:56 +01:00
|
|
|
kotlin("jvm") version "1.6.10"
|
2021-12-01 13:35:32 +01:00
|
|
|
`project-report`
|
2021-11-10 17:34:01 +01:00
|
|
|
}
|
|
|
|
|
|
2022-02-09 11:53:58 +01:00
|
|
|
|
|
|
|
|
object Versions {
|
|
|
|
|
const val jvmTarget = "11"
|
|
|
|
|
const val kotlinTarget = "1.6"
|
2022-02-20 12:24:24 +01:00
|
|
|
// const val kotlin = "1.6.20-M1"
|
2022-02-13 10:42:13 +01:00
|
|
|
const val kotlin = "1.6.10"
|
2022-02-09 11:53:58 +01:00
|
|
|
|
2022-02-20 23:38:44 +01:00
|
|
|
const val gradleNodePlugin = "3.2.1"
|
2022-03-09 21:40:40 +01:00
|
|
|
const val gradleDockerComposePlugin = "0.15.1"
|
2022-02-09 11:53:58 +01:00
|
|
|
|
|
|
|
|
const val kotlinXSerialization = "1.3.2"
|
|
|
|
|
const val kvision = "5.8.1"
|
|
|
|
|
const val semver = "1.1.2"
|
2022-02-13 10:42:13 +01:00
|
|
|
const val http4k = "4.19.1.0"
|
2022-02-09 11:53:58 +01:00
|
|
|
|
|
|
|
|
const val kotest = "5.1.0"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2021-10-10 20:20:01 +02:00
|
|
|
dependencies {
|
|
|
|
|
|
2022-02-09 11:53:58 +01:00
|
|
|
implementation(enforcedPlatform("org.jetbrains.kotlin:kotlin-bom:${Versions.kotlin}"))
|
2021-10-25 23:23:28 +02:00
|
|
|
implementation("org.jetbrains.kotlin:kotlin-serialization")
|
2021-11-28 18:11:39 +01:00
|
|
|
implementation("org.jetbrains.kotlin:kotlin-reflect")
|
2022-02-09 11:53:58 +01:00
|
|
|
implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:${Versions.kotlin}")
|
2021-10-10 20:20:01 +02:00
|
|
|
|
2022-02-13 10:42:13 +01:00
|
|
|
implementation(platform("org.jetbrains.kotlinx:kotlinx-serialization-bom:${Versions.kotlinXSerialization}"))
|
2021-12-01 13:35:32 +01:00
|
|
|
implementation("org.jetbrains.kotlinx:kotlinx-serialization-core")
|
2021-11-28 18:11:39 +01:00
|
|
|
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json")
|
2021-12-22 22:45:56 +01:00
|
|
|
// implementation("com.charleskorn.kaml:kaml:0.37.0")
|
2021-11-28 18:11:39 +01:00
|
|
|
|
2022-02-09 11:53:58 +01:00
|
|
|
implementation("com.github.node-gradle:gradle-node-plugin:${Versions.gradleNodePlugin}")
|
|
|
|
|
|
|
|
|
|
implementation("io.kotest:kotest-framework-multiplatform-plugin-gradle:${Versions.kotest}")
|
|
|
|
|
|
|
|
|
|
implementation("io.kvision:io.kvision.gradle.plugin:${Versions.kvision}")
|
2021-12-08 21:15:16 +01:00
|
|
|
|
2022-02-09 11:53:58 +01:00
|
|
|
implementation("net.swiftzer.semver:semver:${Versions.semver}")
|
2021-12-28 17:05:52 +01:00
|
|
|
|
|
|
|
|
// https://github.com/avast/gradle-docker-compose-plugin
|
2022-02-09 11:53:58 +01:00
|
|
|
implementation("com.avast.gradle:gradle-docker-compose-plugin:${Versions.gradleDockerComposePlugin}")
|
2022-02-13 10:42:13 +01:00
|
|
|
|
|
|
|
|
implementation(platform("org.http4k:http4k-bom:${Versions.http4k}"))
|
|
|
|
|
implementation("org.http4k:http4k-core")
|
|
|
|
|
implementation("org.http4k:http4k-client-okhttp")
|
|
|
|
|
|
2022-03-09 21:40:40 +01:00
|
|
|
|
|
|
|
|
// https://github.com/gradle/gradle/issues/15383#issuecomment-779893192
|
|
|
|
|
// https://youtrack.jetbrains.com/issue/IDEA-262280#focus=Comments-27-5397040.0-0
|
|
|
|
|
// implementation(files(libs.javaClass.superclass.protectionDomain.codeSource.location))
|
2021-10-10 20:20:01 +02:00
|
|
|
}
|
2021-10-30 20:24:58 +02:00
|
|
|
|
2021-11-10 17:34:01 +01:00
|
|
|
|
2021-10-30 20:24:58 +02:00
|
|
|
tasks.withType<KotlinCompile>().configureEach {
|
2021-11-03 09:48:30 +01:00
|
|
|
|
|
|
|
|
kotlinOptions {
|
2022-02-09 11:53:58 +01:00
|
|
|
jvmTarget = Versions.jvmTarget
|
|
|
|
|
apiVersion = Versions.kotlinTarget
|
|
|
|
|
languageVersion = Versions.kotlinTarget
|
2021-11-03 09:48:30 +01:00
|
|
|
}
|
|
|
|
|
|
2021-10-30 20:24:58 +02:00
|
|
|
kotlinOptions.freeCompilerArgs += listOf(
|
2022-02-20 12:24:24 +01:00
|
|
|
// "-Xcontext-receivers",
|
2021-12-28 16:26:23 +01:00
|
|
|
"-opt-in=kotlin.RequiresOptIn",
|
|
|
|
|
"-opt-in=kotlin.ExperimentalStdlibApi",
|
|
|
|
|
"-opt-in=kotlin.time.ExperimentalTime",
|
2022-02-26 17:33:53 +01:00
|
|
|
// "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi",
|
2021-12-28 16:26:23 +01:00
|
|
|
"-opt-in=kotlinx.serialization.ExperimentalSerializationApi",
|
2021-10-30 20:24:58 +02:00
|
|
|
)
|
2021-11-10 17:34:01 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
kotlin {
|
|
|
|
|
jvmToolchain {
|
2022-02-09 11:53:58 +01:00
|
|
|
(this as JavaToolchainSpec).languageVersion.set(JavaLanguageVersion.of(Versions.jvmTarget))
|
2021-11-10 17:34:01 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
kotlinDslPluginOptions {
|
2022-02-09 11:53:58 +01:00
|
|
|
jvmTarget.set(Versions.jvmTarget)
|
2021-11-10 17:34:01 +01:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
idea {
|
|
|
|
|
module {
|
|
|
|
|
isDownloadSources = true
|
|
|
|
|
isDownloadJavadoc = true
|
|
|
|
|
}
|
|
|
|
|
}
|