没有解压缩类的Gradle ShadowJar jar罐子

时间:2018-03-01 19:52:48

标签: gradle

我正在尝试创建一个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和&提取类。而是制作一罐罐子?

非常感谢。

1 个答案:

答案 0 :(得分:0)

您可能希望看到此GitHub问题。 https://github.com/johnrengelman/shadow/issues/111

Shadow插件实际上还没有解决它,那里显示了一些解决方法。