gpt4 book ai didi

android - Gradle - Proguard 配置是否继承?

转载 作者:太空宇宙 更新时间:2023-11-03 12:47:59 24 4
gpt4 key购买 nike

这可能过于宽泛,但我想解释一下 Proguard 和缩小配置如何在项目及其依赖项之间传递,以了解这些操作在我项目的依赖项树中的深度。

我在 `themodule' 的 build.gradle 上:

buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
dependencies {
compile project(':someothermodule')
compile 'some.maven.central.library'
}

通过配置,很明显 themodule 中的类将被缩小和混淆,但是 someothermodule 的类会发生什么?它们也会被缩小和混淆吗?即使 someothermoduleminifyEnabled true

如果“someothermodule”只是一个 .jar 依赖会怎样?

some.maven.central.library 的配置会发生什么?

正在构建的模块的 Proguard 配置是级联到它的依赖项还是每个依赖项都遵循自己的规则?

最佳答案

如果模块本身被混淆(minifyEnabled true),使用的配置不会自动被使用模块(在您的情况下是应用程序)继承。

Android gradle 插件中有一种机制可以启用此功能:

consumerProguardFiles 'proguard-rules.pro'

proguard-rules.pro 中包含的规则将自动包含在应用程序项目中并与其他配置文件合并。

这仅适用于 Android 库项目 (.aar)。例如,如果您依赖于 maven central 上的 .jar 文件,则没有这样的消费者规则可用,您必须将所需的配置添加到您的应用程序项目中自己。

请记住,混淆模块的配置和消费应用程序/模块使用的配置不需要相同。在大多数情况下,消费者规则只是一组 -keep 规则。

关于android - Gradle - Proguard 配置是否继承?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38503434/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com