Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Gradle将zip文件依赖项提取到单独的目录中_Gradle_Android Gradle Plugin - Fatal编程技术网

使用Gradle将zip文件依赖项提取到单独的目录中

使用Gradle将zip文件依赖项提取到单独的目录中,gradle,android-gradle-plugin,Gradle,Android Gradle Plugin,我想提取多个zip文件,这些文件是我的构建的依赖项 现在我有: project.tasks.create(name: 'extractExternalNativeDependencies', type: Copy) { from { configurations.externalNative.collect { zipTree(it) } } into project.

我想提取多个zip文件,这些文件是我的构建的依赖项

现在我有:

project.tasks.create(name: 'extractExternalNativeDependencies', type: Copy) {
        from {
            configurations.externalNative.collect {
                zipTree(it)
            }
        }
        into project.file(".externalNativeDependencies")
    }
这会将所有依赖项提取到同一文件夹中。我希望将每个zip文件解压缩到它自己的文件夹中


然而,我已经看到“有效解决方案”并没有真正起作用。如果生成在未清理的情况下运行了两次,则会失败。如果源ZIP是最新的,则实际上不应运行。以下
任务
配置将每个依赖项扩展到其自己的子文件夹中:

task extractExternalNativeDependencies(type: Copy) {
    configurations.externalNative.collect { dependency ->
        from(zipTree(dependency)) {
            into dependency.name
        }
    }

    into project.file(".externalNativeDependencies")
}

我最终使用了resolvedConfiguration,因为它使用了依赖项名称而不是下载的文件名:
configurations.externalNative.resolvedConfiguration.resolvedArtifacts.each{artifact->project.copy{from(project.zipTree(artifact.file))放入新文件(outputDir,artifact.name)}