This might be too broad, but I would like an explanation on how Proguard and minification configurations are passed between projects and their dependencies to understand how deeply are these operations made in my project's dependency tree.
I have on build.gradle
of `themodule':
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
dependencies {
compile project(':someothermodule')
compile 'some.maven.central.library'
}
By the configuration it seems clear that the classes inside themodule
will be minifyed and obfuscated, but what happens with the classes of someothermodule
? Will they also be minifyed and obfuscated? Even if someothermodule
has minifyEnabled true
?
What happens if 'someothermodule' is just a .jar dependency?
What happens with the configurations of some.maven.central.library
?
Are the Proguard configurations of the module being built cascading down to its dependencies or each of them follows its own rules?