ProGuard artefact
[ProGuard workflow]
Artefact not minified, Consumer solve it
Library is open-sourced but as a library developer you can provide a ProGuard file which will be take into account by consumer(app) by demand(minifyEnabled true
in consumer). consumerProguardFiles
in you library build.gradle
. It adds proguard.txt
file(is the same as .pro
) in an artefact
For example your library is open-source and application developer wants to minify all
android {
defaultConfig {
//consumerProguardFiles '<file_path>'
consumerProguardFiles 'proguard-rules.pro'
}
buildTypes {
release {
minifyEnabled false
}
}
//...
}
Artefact is minified
Library is closed-source - you are able to use the next possibility:
android {
buildTypes {
release {
minifyEnabled true
//proguardFiles project(':<project_name>').file('<file_path>')
proguardFiles 'proguard-rules.pro'
}
}
//...
}
*Please note that:
minifyEnabled true
and proguardFiles project
both should be set.
- If you use single
minifyEnabled true
or <file_path>
is wrong - classes.jar
is empty.
- If single
proguardFiles project
- no effect
As for build process on the example of library - application
- all .class
files will be merged into single archive with .dex
extension