https://stackoverflow.com/questions/41794914/how-to-create-the-fat-jar-with-gradle-kotlin-script val projectName = "my-projet" application { // mainを設定(コンパイル後Ktがつくことに注意) mainClass.set("com.MainKt") } // `fatJar` の名前でタスクを定義する task("fatJar", Jar::class) { archiveBaseName.set(projectName) manifest { attributes["Main-Class"] = mainClass } duplicatesStrategy = DuplicatesStrategy.EXCLUDE from( // classpathからjarファイルを取得して、zipに加える configurations.runtimeClasspath.get().map { if (it.isDirectory) it else zipTree(it) } ) exclude("META-INF/*.RSA", "META-INF/*.SF", "META-INF/*.DSA") } gradle installDist したときのディレクトリ名と実行ファイル名の設定 my-project$ ./gradlew installDist # すると以下のツリーができる # my-project/build/install/my-project/lib # my-project/build/install/my-project/lib/... # my-project/build/install/my-project/bin # my-project/build/install/my-project/bin/my-project (executable)