在我的开源库中,我使用以下内容:
android {
compileSdkVersion setup.compileSdk
buildToolsVersion setup.buildTools
defaultConfig {
minSdkVersion setup.minSdk
targetSdkVersion setup.targetSdk
}
}
我不想强迫每个人定义这些常量,但我想使用它们,并且我在所有项目和库中使用相同的常量。所以我希望能够使用一个适合我的代码以及其他没有定义这些变量的代码。我正在寻找以下内容:
android {
// pseudo code line
if setup is defined
{
compileSdkVersion setup.compileSdk
buildToolsVersion setup.buildTools
defaultConfig {
minSdkVersion setup.minSdk
targetSdkVersion setup.targetSdk
}
}
// default setup, if the user did not define global constants
else
{
compileSdkVersion 24
buildToolsVersion "24.0.2"
defaultConfig {
minSdkVersion 16
targetSdkVersion 24
}
}
}
这样的事情可能吗?还有其他建议吗?
答案 0 :(得分:1)
我想您的 setup 变量存储在项目扩展名
中project.ext.setup = setup
这样,您可以从项目和所有子项目中访问它
你可以像这样测试设置的存在
if (project.hasProperty('setup'))
如果没有提供
,我们的想法是创建默认的设置 varif (!project.hasProperty('setup')){
project.ext.setup = new Setup()
project.setup.compileSdk = 24
project.setup.buildTools = "24.0.2"
project.setup.minSdk = 16
project.setup.targetSdk = 24
}
android {
compileSdkVersion project.setup.compileSdk
buildToolsVersion project.setup.buildTools
defaultConfig {
minSdkVersion project.setup.minSdk
targetSdkVersion project.setup.targetSdk
}
}
答案 1 :(得分:0)
当然,我已经尝试过这个并且它已成功构建。
android{
...
if (someCondition){
compileSdkVersion 23
buildToolsVersion "23.0.1"
...
}else {
compileSdkVersion 24
buildToolsVersion "24.0.3"
...
}
}