我正在尝试使用本地 .jar 创建一个 FatJar。但是,我只找到了不推荐使用“编译”等描述方法的教程和指南。
做这样的事情的最新和最好的方法是什么?
需要完成的 .jar(包含所有依赖项)才能在远程服务器上运行它。
我正在尝试使用本地 .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
}
如果您使用最新版本,可能 +7 您需要添加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 及更高版本,希望这项工作。