In your library you need to tell gradle to build every time every variant:
android {
publishNonDefault true
}
Then in your application, since recently I guess, you can do this:
dependencies {
(...)
devCompile project(path: ':lib', configuration: 'devDebug') // or 'devRelease'
storeCompile project(path: ':lib', configuration: 'storeRelease') // or 'storeDebug'
}
Found in the official documentation under Library Publication.
Edit:
Since version 0.14.3 (2014/11/18), you can now have Flavor-buildType-Compile directive as well:
In your build.gradle before the android {} scope add the following:
configurations {
devDebugCompile
devReleaseCompile
storeDebugCompile
storeReleaseCompile
}
Then you can declare and use different versions of your library per Flavor-BuildType:
dependencies {
(...)
devDebugCompile project(path: ':lib', configuration: 'devDebug')
devReleaseCompile project(path: ':lib', configuration: 'devRelease')
storeDebugCompile project(path: ':lib', configuration: 'storeDebug')
storeReleaseCompile project(path: ':lib', configuration: 'storeRelease')
}
Edit:
Dependency management between modules has changed since Android Gradle Plugin 3.0.0. It automatically tries to matches flavours between your app and the libraries/modules it depends on.
See the documentation for the whole explanation!
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…