我正在尝试创建一个jar罐而不从每个jar解压缩类文件。不幸的是shadowJar unzip的所有罐子和生成的罐子包含目录而不是罐子。 我的build.gradle文件是:
apply plugin: 'com.github.johnrengelman.shadow'
dependencies {
compile("ldapjdk:ldapjdk:1.0"){
transitive = false
}
compile("support:activemq-core:5.3.1"){
transitive = false
}
compile("support:concurrent:0.0"){
transitive = false
}
compile("dom4j:dom4j:${dom4j_version}"){
transitive = false
}
compile("commons-lang:commons-lang:${commons_lang_version}") {
transitive = false
}
}
task copyRuntimeLibs(type: Copy) {
from(project(':server').configurations.runtime)
include 'commons-lang2*'
include 'ldapjdk*'
include 'dom4j*'
include 'concurrent*'
}
task copyFiles(dependsOn: [copyRuntimeLibs])
task copyToLib( type: Copy ) {
into "$buildDir/lib"
from configurations.runtime
}
jar { dependsOn copyToLib }
shadowJar {
zip64 true
baseName = "service"
from("$buildDir/lib") {
include '**'
}
}
我试过{configurations.compile.collect {it.isDirectory()?它:zipTree(it)}}。这也提取类,MANIFEST等。
有没有办法不从每个jar和&提取类。而是制作一罐罐子?
非常感谢。
答案 0 :(得分:0)
您可能希望看到此GitHub问题。 https://github.com/johnrengelman/shadow/issues/111
Shadow插件实际上还没有解决它,那里显示了一些解决方法。