Kafkatorio/modules/events-server/build.gradle.kts

86 lines
2.2 KiB
Text
Raw Normal View History

import dev.adamko.kafkatorio.task.KafkaConsumerGroupsTask
2021-12-28 16:26:23 +01:00
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
2021-10-22 18:19:53 +02:00
plugins {
dev.adamko.kafkatorio.lang.`kotlin-jvm`
2021-10-25 23:35:47 +02:00
kotlin("plugin.serialization")
application
2021-10-22 18:19:53 +02:00
}
description = """
2021-10-22 18:19:53 +02:00
Receive raw Factorio Events from Kafka and process them into targeted topics or data formats.
Factorio events -> Mod -> Kafka -> ***Factorio Events Processor*** -> processed events
""".trimIndent()
val projectId: String by project.extra
2022-03-12 01:37:35 +01:00
val kafkaStateDir = layout.projectDirectory.dir("kafka-state")
dependencies {
implementation(libs.kafka.streams)
2021-12-01 16:57:46 +01:00
implementation(projects.modules.eventsSchema)
// implementation("com.ionspin.kotlin:bignum:0.3.3")
implementation(platform(libs.kotlinx.serialization.bom))
implementation(libs.kotlinx.serialization.core)
implementation(libs.kotlinx.serialization.json)
implementation("org.jetbrains.kotlinx:kotlinx-serialization-protobuf")
2021-10-25 23:35:47 +02:00
implementation(libs.kotlinx.coroutines)
implementation(platform(libs.http4k.bom))
2021-12-28 16:26:23 +01:00
implementation(libs.bundles.http4k)
implementation(libs.http4k.format.kotlinx)
implementation(libs.bundles.logging)
implementation("com.sksamuel.scrimage:scrimage-core:4.0.24")
val kotkaVersion = "v0.0.14"
implementation("com.github.adamko-dev.kotka-streams:kotka-streams:$kotkaVersion") {
isChanging = true
}
}
//configurations.all {
// resolutionStrategy.cacheDynamicVersionsFor(1, TimeUnit.MINUTES)
//}
application {
mainClass.set("dev.adamko.kafkatorio.processor.EventProcessorKt")
}
2021-12-28 16:26:23 +01:00
tasks.withType<KotlinCompile> {
kotlinOptions.freeCompilerArgs += listOf(
"-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi",
"-opt-in=kotlinx.coroutines.FlowPreview",
2022-02-26 17:34:31 +01:00
"-opt-in=kotlinx.serialization.ExperimentalSerializationApi",
2021-12-28 16:26:23 +01:00
)
}
val kafkaStateDirDelete by tasks.registering(Delete::class) {
group = project.name
mustRunAfter(kafkaConsumersDelete)
2022-03-12 01:37:35 +01:00
delete(kafkaStateDir)
}
val kafkaConsumersDelete by tasks.registering(KafkaConsumerGroupsTask.DeleteAll::class) {
2022-02-26 17:34:31 +01:00
group = project.name
}
//tasks.run.configure {
// dependsOn(kafkatorioEventsServerKafkaForceReset)
//}
2022-03-12 01:37:35 +01:00
idea {
module {
excludeDirs = excludeDirs + kafkaStateDir.asFile
}
}