使用Gradle将zip文件依赖项提取到单独的目录中
我想提取多个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.
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)}