比如gradle根项目build.gradle具有以下定义:
ext { varName = "varValue" }
然后在Module build.gradle中按如下方式使用它:
def xxx = rootProject.ext.varName
但看起来没有ext,它也能正常工作:
def xxx = rootProject.varName
这两种款式有什么区别?
0aydgbwb1#
根据我的推断,直接从项目访问属性与使用ExtraPropertiesExtension(. ext)访问属性是有区别的。执行此操作时:
rootProject.varName
该逻辑将遍历整个项目以搜索此属性,如果该属性不存在,则可能会导致异常(MissingPropertyException)。执行此操作时:
rootProject.ext.varName
逻辑直接在ExtraProperty范围中搜索。
1条答案
按热度按时间0aydgbwb1#
根据我的推断,直接从项目访问属性与使用ExtraPropertiesExtension(. ext)访问属性是有区别的。
执行此操作时:
该逻辑将遍历整个项目以搜索此属性,如果该属性不存在,则可能会导致异常(MissingPropertyException)。
执行此操作时:
逻辑直接在ExtraProperty范围中搜索。