使用gradle复制任务从所有依赖项复制META-INF

时间:2015-12-03 16:37:26

标签: java gradle copy meta-inf

使用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

1 个答案:

答案 0 :(得分:1)

Where

简单的修复: 用Java方式写它。