使用Gradle Copy任务的问题:
11b
非常简单,循环遍历所有依赖项,如果它们是归档,则循环访问它们的zipTrees以确保它们本身没有Jar。
完成此操作后,我想将META-INF文件夹中的所有文件复制到我的目录中。
由于某种原因,它正在将所有文件复制到目录中。但是,如果我在eachFile中打印,它只显示我想要复制的文件。
def loopJar(File file) {
zipTree(file).findAll { that ->
that
}.collect { the ->
if (the.getName().endsWith(".jar") || the.getName().endsWith(".aar")) {
loopJar(the)
}
the;
}
}
task fatJar(type: Copy) {
into 'libs'
include { it.toString().contains("META-INF") }
from {
configurations.compile.findAll {
it.getName() != 'android.jar'
}.collect {
loopJar(it);
}
}
}
这是eachFile的输出。 然而所有文件都进入了libs文件夹......什么!?
此脚本的用法: 要复制所有元文件(最终只是许可,通知信息)并将它们添加到我们自己文件夹中的AAR文件中,以允许其他人希望包含我的aar,而不会出现冲突的文件问题: Intel's intro to AVX
答案 0 :(得分:1)
Where
简单的修复: 用Java方式写它。