Kotlin
x
tasks.create<Jar>("fatJar") {
archiveBaseName.set(project.name + "-all")
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
manifest {
attributes["Main-Class"] = "top.e404.bot.loader.Main"
}
val exclude = listOf(
"LICENSE.txt",
"META-INF/MANIFSET.MF",
"META-INF/maven/**",
"META-INF/*.RSA",
"META-INF/*.SF"
)
val dependencies = configurations.runtimeClasspath.get().map(::zipTree)
from(dependencies).exclude {
it.path in exclude
}
with(tasks.jar.get())
}
或者使用 shadow 插件
Kotlin
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
kotlin("jvm") version "1.7.21"
id("com.github.johnrengelman.shadow") version "7.1.2"
}
group = "top.e404"
version = "1.0.0"
repositories {}
dependencies {}
tasks.shadowJar {
archiveFileName.set("${project.name}-${project.version}-all.jar")
}