【简记】如何在gradle构建脚本中判断一个变量是否存在/分配
问题说明
最近在调整公司项目的公共脚本,需要根据多个变量是否存在来判断是否引入相应的bom,伪代码如下:
gradle.properties中
xBomVersion=1.0.0
构建脚本片段:
configure(allprojects) {
apply plugin: 'java'
apply plugin: 'java-library'
apply plugin: "io.spring.dependency-management"
configurations.all {
dependencyManagement {
imports {
if(xBomVersion变量存在){
mavenBom("xgroup:x-dependencies:${xBomVersion}")
}
if(yBomVersion变量存在){
mavenBom("ygroup:y-dependencies:${yBomVersion}")
}
}
}
}
}
如果if条件是xBomVersion != null
和yBomVersion != null
,则当有一个变量未在gradle.properties中配置时,会被gradle抛出Configuration with name 'xBomVersion' not found
错误。
思路及解决
原因既然是有变量不存在,就判断这个变量是否存在即可。
根据 gradle property is defined
关键字查到一篇StackOverFlow,文章中提到可以使用if (project.hasProperty('special'))
方式来判断变量是否定义。
则最终使用这种办法实现了这个需求。