繁体   English   中英

我如何使jar任务在gradle中包含单个依赖项

[英]How do I get a jar task to include a single dependency in gradle

我有一个看起来像这样的任务(这不是该模块启动的主要jar,我无法显示另一个任务)

task interfaceJar(type: Jar) {
    classifier = 'interface'

    from "$buildDir/classes/main/"

    include 'x/y/z/stuff.class'
}

还有一些像这样的依赖

dependencies {
    /* lots of dependencies */
    compile 'com.esotericsoftware:kryo:3.0.3'
}

如何在我的interfaceJar任务中包括一个特定的依赖项?

要在不先解压缩的情况下包含依赖项jar :(注意:如果您使用它,则可能要向清单中添加Class-Path条目)

task interfaceJar(type: Jar) {
    classifier = 'interface'

    from "$buildDir/classes/main/"
    from configurations.compile.findAll{it.name.contains('kryo')}

    include 'x/y/z/stuff.class'
    include '*.jar'
}

编辑:解压缩您的依赖项jar并将内容包含在您的接口jar中:

task interfaceJar(type: Jar) {
    classifier = 'interface'
    from("$buildDir/classes/main/"){
        include 'stuff.class'
    }

    configurations.compile.findAll{it.name.contains('kryo')}.each{
        from(it.isDirectory() ? it : zipTree(it))
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM