【发布时间】:2017-11-07 09:35:36
【问题描述】:
我正在用下面的代码构建一个胖罐子。但是,我在不同的 jar 中有多个同名的属性文件,这些文件被收集到 fat jar 中。
我想解决方案是将具有相同名称的文件连接/合并到一个文件中,但是我该怎么做呢?我发现了这个问题How do I concatenate multiple files in Gradle?。
如何访问和合并 it 对象中的属性文件(我们将它们命名为 myproperties.properties)?
task fatJar(type: Jar) {
def mainClass = "myclass"
def jarName = "myjarname"
zip64=true
manifest {
attributes(
'Main-Class': mainClass,
'Class-Path': configurations.compile.collect { it.getName() }.join(' ')
)
}
baseName = project.name + '-' + jarName + '-all'
from {
configurations.compile.collect {
it.isDirectory() ? it : zipTree(it)
}
}
{
exclude 'META-INF/*.RSA', 'META-INF/*.SF','META-INF/*.DSA'
}
with jar
}
解决方案: 尽管我没有尝试过,但我将给定的答案标记为解决方案。相反,我们通过创建多个 jar 并将它们添加到类路径来解决问题。
【问题讨论】:
标签: java gradle concatenation executable-jar