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

标签 gradle android-gradle-plugin

我想提取多个 zip 文件,它们是我的构建的依赖项。

现在我有:

project.tasks.create(name: 'extractExternalNativeDependencies', type: Copy) {
        from {
            configurations.externalNative.collect {
                zipTree(it)
            }
        }
        into project.file(".externalNativeDependencies")
    }

这会将所有依赖项提取到同一文件夹中。我希望将每个 zip 解压到它自己的文件夹中。

我见过Gradle extract multiple dependencies each to a different directory然而,这个“工作解决方案”并没有真正起作用。如果构建运行两次而没有清理,它就会失败,并且如果源 zip 是最新的,它实际上不应该运行。

最佳答案

以下task配置将每个依赖项展开到它自己的子文件夹中:

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

    into project.file(".externalNativeDependencies")
}

关于gradle - 使用 Gradle 将 zip 文件依赖项提取到单独的目录中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40186863/

相关文章:

java - Android Studio - Gradle 构建运行永无止境

android - Flutter 构建错误 : AAPT: error: resource android:attr/fontVariationSettings, ttcIndex 未找到

flutter - 编译 flutter 程序时计算机死机

android - 在 Jenkins 上构建项目时任务 ':app:mergeDebugResources' 执行失败

maven - mavenDeployer没有使用变量值

gradle - 使用 gradle 0.8 复制文件树时如何强制包含空目录?

java - ClassNotFoundException re android.support.v4.view.ViewPager 膨胀时

android - 如何在 android 中修复错误 "Could not find com.android.tools.build:gradle:3.4.1"?

maven - Gradle的 “local repository”与Maven相似吗?

android - 升级到 Android Gradle 插件 3.4.0 后类不再混淆