【发布时间】:2016-10-20 19:57:57
【问题描述】:
我有一个 gradle 脚本,需要像这样作为依赖项导入:
compile project(':subproject', { ext.app = 'myApp'; ext.serverUrl = 'https://example.com'; ext.system = 'LIVE'})
如果我直接在依赖语句中设置变量,这可以正常工作。
由于我有一个不同的调试和发布系统,我试图将这些属性移动到 buildTypes:
...
debug {
debuggable true
serverUrl = 'https://example.com'
system = 'TEST'
}
prerelease {
debuggable true
serverUrl = 'https://example.com'
system = 'STAGING'
}
release {
serverUrl = 'https://example.com'
system = 'LIVE'
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
...
dependencies {
compile project(':subproject', { ext.app = appName; ext.serverUrl = serverUrl; ext.system = system })
}
所以,当我构建assembleDebug 时,它应该使用TEST,而对于assemblePrerelease,它应该使用STAGING。但是它总是使用发布构建类型变量来编译依赖项。
库已经包含publishNonDefault true
这个 gradle 脚本有什么问题?
【问题讨论】:
-
在我看来,gradle 总是将最后一个值放入扩展名中。如何从其他 buildTypes 获取定义?也许有一个循环?
标签: android gradle dependencies