我正在尝试使用风味组构建基于gradle的项目。这些群体是“市场”和“成本”。问题在于依赖管理。
例如,我想做一些像compileFreeGplay 'com.google.android.gms:play-services:5.0.89'
这样的东西,但是这个Android插件还没有支持gradle。
所以我使用了基于这个SO问题的解决方案:https://stackoverflow.com/a/22584908/2904294
解决方案可以正常工作并根据正在构建的变体填充以下全局变量:
ext {
buildType = ""
groupCost = ""
groupMarket = ""
}
这是“依赖关系”部分:
dependencies {
compile 'com.android.support:support-v4:20+'
compile 'com.android.support:appcompat-v7:20+'
compile 'com.google.android.gms:play-services:5.0.89'
println groupMarket + ", " + groupCost
if (groupMarket == 'gplay' && groupCost == 'free') {
compile files('C:\\Program Files (x86)\\adsSdks\\MobileCoreLibrary\\mobilecore_V0.9.4.jar')
println 'inside!!'
}
else if (groupMarket == 'amazon' && groupCost == 'free') {
compile files('C:\\Program Files (x86)\\adsSdks\\Apps-SDK\\Android\\Ads\\lib\\amazon-ads-5.4.78.jar')
}
}
printlns
全部正确显示,代码按预期进入ifs
。但是项目中的库仍未包含。
如果我将它放在ifs
之外,那就完美了:
dependencies {
compile 'com.android.support:support-v4:20+'
compile 'com.android.support:appcompat-v7:20+'
compile 'com.google.android.gms:play-services:5.0.89'
compile files('C:\\Program Files (x86)\\adsSdks\\MobileCoreLibrary\\mobilecore_V0.9.4.jar')
}
有更多Gradle经验的人可以指出我在这里缺少什么吗?谢谢!