import org.gradle.jvm.tasks.Jar plugins { java kotlin("jvm") version "1.4.20" } group = "org.example" version = "1.0-SNAPSHOT" repositories { mavenCentral() } dependencies { implementation(kotlin("stdlib")) implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8") implementation("com.xenomachina:kotlin-argparser:2.0.7") implementation("org.fusesource.jansi:jansi:1.17.1") } val fatJar = task("fatJar", type = Jar::class) { baseName = "${project.name}-fat" // manifest Main-Class attribute is optional. // (Used only to provide default main class for executable jar) manifest { attributes["Implementation-Title"] = "Gradle Jar File for Tapo Decrypt PoC" attributes["Implementation-Version"] = version attributes["Main-Class"] = "MainKt" } from(configurations.runtimeClasspath.get().map { if (it.isDirectory) it else zipTree(it) }) with(tasks["jar"] as CopySpec) }