我通常在我的项目中做以下事情:
1)定义一个versions.gradle文件,例如:
ext {
setup = [
compileSdk: 28,
enableDataBinding: true,
minSdk : 16,
targetSdk : 28
]
androidx = [
supportv4: "1.0.0",
appcompat: "1.0.0",
cardview: "1.0.0",
viewpager: "1.0.0",
material: "1.0.0"
]
}
2)我将此版本文件添加到我的 projects gradle文件中:
apply from: './versions.gradle'
3)我将所有项目gradle文件中文件的版本用于一致的库版本,例如:
implementation "androidx.appcompat:appcompat:${androidx.appcompat}"
问题
如何在我使用的开源库中优雅地处理此问题?我希望如果有人签出我的库并将该库直接添加到他的项目中,那么将提供一些默认版本,以便该行implementation "androidx.appcompat:appcompat:${androidx.appcompat}"
不会引发任何错误(${androidx.appcompat}
应该替换为{ {1}},例如在这种情况下。
有什么方法可以轻松解决此问题吗?我希望使用版本文件(如果可用),否则使用后备版本...
答案 0 :(得分:2)
尝试使用 Elvis运算符放置默认值可以解决这个问题,因此可以使用以下运算符替换它:
implementation "androidx.appcompat:appcompat:${androidx.appcompat ?: 'default value here'}"
来自here的更多内容。