import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { kotlin("jvm") version "1.8.0" application id("org.jetbrains.dokka") version "1.7.20" } group = "me.theka" version = "1.0-SNAPSHOT" repositories { mavenCentral() maven { url = uri("https://maven.pkg.jetbrains.space/public/p/kotlinx-html/maven") } maven { url = uri("https://jitpack.io") } maven { url = uri("https://mvnrepository.com/artifact/com.google.cloud/google-cloud-translate") } } dependencies { testImplementation(kotlin("test")) implementation("no.tornado:tornadofx:1.7.20") implementation("org.jetbrains.kotlinx:kotlinx-html-jvm:0.8.0") implementation("com.deepl.api:deepl-java:1.0.1") platform("com.google.cloud:libraries-bom:26.1.4") implementation("com.google.cloud:google-cloud-translate:2.8.0") dokkaHtmlPlugin("org.jetbrains.dokka:kotlin-as-java-plugin:1.7.20") implementation("com.fasterxml.woodstox:woodstox-core:6.5.0") } tasks.test { useJUnitPlatform() } tasks.withType<KotlinCompile> { kotlinOptions.jvmTarget = "1.8" } application { mainClass.set("guru.kake.ronove.MainKt") } tasks { val fatJar = register<Jar>("fatJar") { dependsOn.addAll(listOf("compileJava", "compileKotlin", "processResources")) // We need this for Gradle optimization to work archiveClassifier.set("standalone") // Naming the jar duplicatesStrategy = DuplicatesStrategy.EXCLUDE manifest { attributes(mapOf("Main-Class" to application.mainClass)) } // Provided we set it up in the application plugin configuration val sourcesMain = sourceSets.main.get() val contents = configurations.runtimeClasspath.get() .map { if (it.isDirectory) it else zipTree(it) } + sourcesMain.output from(contents) } build { dependsOn(fatJar) // Trigger fat jar creation during build } }