Java Gradle jar任务在目录中添加jar文件的内容
我有一个jar文件目录,可能是空的,也可能有各种名称的jar文件。我想把它们解压缩,放进我的肥罐子里。我见过from-zipTree('path')的用法,但这似乎只适用于特定的jar/zip文件名 这是我目前的毕业任务Java Gradle jar任务在目录中添加jar文件的内容,java,gradle,jar,build.gradle,Java,Gradle,Jar,Build.gradle,我有一个jar文件目录,可能是空的,也可能有各种名称的jar文件。我想把它们解压缩,放进我的肥罐子里。我见过from-zipTree('path')的用法,但这似乎只适用于特定的jar/zip文件名 这是我目前的毕业任务 task buildSweetJar(dependsOn: classes, type: Jar) { baseName 'MySweetJar' from ([sourceSets.main.output, configurations.compile.col
task buildSweetJar(dependsOn: classes, type: Jar) {
baseName 'MySweetJar'
from ([sourceSets.main.output, configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } ])
from zipTree ('tmp_plug/*.jar') -- this doesn't work
manifest {
attributes (
'Main-Class': 'my.app.SysInit',
'Class-Path': configurations.compile.collect { it.getName() }.join(' ')
)
}
exclude 'META-INF/*.RSA', 'META-INF/*.SF','META-INF/*.DSA'
}
FileTree pluginFileTree = fileTree(dir: 'tmp_plug/')
from ([sourceSets.main.output, configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } ])
pluginFileTree.each {
File pluginJarFile ->
from zipTree (pluginJarFile)
}
我建议使用springboot之类的框架来创建一个可运行的jar。它将消除需要手动曲柄许多锅炉板格雷德尔代码。有一个spring boot gradle插件,它几乎可以为您做任何事情:
我不确定您是如何管理依赖项的,但将它们存储在文件系统中不是一个好的做法。您应该从存储库(如Maven Central)解析它们。我不确定您是否在这样做,但问题表明您没有。一个“胖罐子”不仅仅是一个包含运行代码所需的所有罐子的罐子-我想您知道这一点?事实上,不,我不知道。我猜我的术语不对。胖jar是可执行jar的另一个名称,您可以从命令行自己运行它。e、 g.“java-jar your_jar_file.jar”是您想要做的,还是您正在尝试实现其他目标?是的,这就是我正在尝试做的。创建jar的任务已经存在,我们将其用作可执行文件。但是,我需要为一个新的目的添加额外的项目。谢谢。海报应该只使用fatJar插件。建议将spring引导用于范围可能很小的东西是过分的。