簡體   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