gradle 根项目.扩展变量名与根项目.变量名

xmq68pz9  于 2023-03-03  发布在  其他
关注(0)|答案(1)|浏览(167)

比如gradle根项目build.gradle具有以下定义:

ext {
    varName = "varValue"    
}

然后在Module build.gradle中按如下方式使用它:

def xxx = rootProject.ext.varName

但看起来没有ext,它也能正常工作:

def xxx = rootProject.varName

这两种款式有什么区别?

0aydgbwb

0aydgbwb1#

根据我的推断,直接从项目访问属性与使用ExtraPropertiesExtension(. ext)访问属性是有区别的。
执行此操作时:

rootProject.varName

该逻辑将遍历整个项目以搜索此属性,如果该属性不存在,则可能会导致异常(MissingPropertyException)。
执行此操作时:

rootProject.ext.varName

逻辑直接在ExtraProperty范围中搜索。

相关问题