我有一个看起来像这样的任务(这不是这个模块开出的主要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任务中包含一个特定的依赖项?
答案 0 :(得分:2)
要包含依赖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))
}
}