我如何用 gradle 构建一个 Fat Jar(没有弃用的函数)
How can i build a FatJar with gradle (Without the depricated functions)
我正在尝试使用本地 .jar 创建 FatJar。但是,我只找到一些教程和指南,其中不推荐使用“编译”等方法。
做这样的事情最新最好的方法是什么?
需要完成的 .jar(包含所有依赖项)运行 它在远程服务器上。
我假设你没有使用 kotlin,因为你没有提到任何相关信息。
您可以为此创建自己的任务
task createfatJar(type: Jar) {
manifest {
attributes 'Main-Class': 'full.package.path.Main'
}
archiveClassifier = "all"
from {
configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
}
with jar
}
如果您使用的是最新版本,可能需要添加 duplicatesStrategy 'exclude'
并删除 configurations.compile.collect
+7
我正在使用 6.9,但它应该如下所示
task createfatJar(type: Jar) {
duplicatesStrategy 'exclude'
manifest {
attributes 'Main-Class': 'full.package.path.Main'
}
archiveClassifier = "all"
from {
configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
}
with jar
}
如果您使用的是版本 7 或更高版本,希望这能奏效。
我正在尝试使用本地 .jar 创建 FatJar。但是,我只找到一些教程和指南,其中不推荐使用“编译”等方法。
做这样的事情最新最好的方法是什么?
需要完成的 .jar(包含所有依赖项)运行 它在远程服务器上。
我假设你没有使用 kotlin,因为你没有提到任何相关信息。 您可以为此创建自己的任务
task createfatJar(type: Jar) {
manifest {
attributes 'Main-Class': 'full.package.path.Main'
}
archiveClassifier = "all"
from {
configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
}
with jar
}
如果您使用的是最新版本,可能需要添加 duplicatesStrategy 'exclude'
并删除 configurations.compile.collect
我正在使用 6.9,但它应该如下所示
task createfatJar(type: Jar) {
duplicatesStrategy 'exclude'
manifest {
attributes 'Main-Class': 'full.package.path.Main'
}
archiveClassifier = "all"
from {
configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
}
with jar
}
如果您使用的是版本 7 或更高版本,希望这能奏效。