在我的开源库中,我使用如下代码:
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
}
}
}
这样有可能吗?还有其他建议吗?
最佳答案
我想象您的设置变量存储在项目扩展中
project.ext.setup = setup
这样,可以从您的项目和所有子项目中访问它
您可以像这样测试设置的存在
if (project.hasProperty('setup'))
这个想法是创建一个默认的安装变量(如果没有提供的话)
if (!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
}
}