Gradle android 优化 packagingOptions

新手上路,请多包涵

我有那个项目结构:

 -gradle root
           |-clients
                    |-client 1
                    |-client 2
                        ...
                    |-client N
           |-libs
                    |-android lib 1
                    |-android lib 2
                        ...
                    |-android lib N
                    |-java lib 1
                    |-java lib 2
                        ...
                    |-java lib N

在每个客户端构建文件中,我都有 packagingOptions 来排除选项。像这样的东西:

 packagingOptions {
    exclude 'META-INF/DEPENDENCIES.txt'
    exclude 'META-INF/NOTICE'
    exclude 'META-INF/NOTICE.txt'
    exclude 'META-INF/LICENSE'
    exclude 'META-INF/LICENSE.txt'
}

我如何优化该块并将其移动到我的根 gradle 构建文件中?我真的不想在所有客户端上复制粘贴它。

原文由 Redwid 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 581
1 个回答

找到解决方案。致谢: https ://github.com/frankdu/android-gradle-dagger-tutorial

我已经创建了单独的构建文件并将该设置移到那里。文件 _androidcommon.gradle

 android {
    packagingOptions {
        exclude 'META-INF/DEPENDENCIES.txt'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/LICENSE.txt'
    }
}

然后在每个客户中放置该行:

 apply from: "${rootDir}/android_common.gradle"

最后从我的客户构建文件中排除了 packagingOptions 。另外,我在那里移动了另一个常见的配置。之后看起来干净、简单、漂亮。

原文由 Redwid 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题