Android ext和project.ext在gradle中的作用域相同吗?
如果我有下面的Android gradle脚本Android ext和project.ext在gradle中的作用域相同吗?,android,gradle,android-gradle-plugin,Android,Gradle,Android Gradle Plugin,如果我有下面的Android gradle脚本 ext { compileSdkVersion = 25 } android { compileSdkVersion project.compileSdkVersion } ext{…}是否与project.ext{…}具有相同的作用域 下面两个有相同的范围吗 compileSdkVersion项目。compileSdkVersion compileSdkVersion此。compileSdkVersion compileS
ext {
compileSdkVersion = 25
}
android {
compileSdkVersion project.compileSdkVersion
}
ext{…}
是否与project.ext{…}
具有相同的作用域compileSdkVersion项目。compileSdkVersion
compileSdkVersion此。compileSdkVersion
-不。这就产生了错误compileSdkVersion compileSdkVersion
Gradle的域模型中的所有增强对象都可以保存额外的用户定义属性。这包括但不限于项目、任务和源集。可以通过拥有对象的ext属性添加、读取和设置额外属性。或者,可以使用ext块一次添加多个特性 在代码中,
ext
块向项目
对象添加两个额外的属性
另外,ext
是project.ext
的缩写。
要读取额外的属性,将省略ext
,您可以使用以下内容:
ext {
compileSdkVersion=26
}
project.myExtProp
myExtProp
compileSdkVersion project.compileSdkVersion
因为额外属性与android属性同名
这只是最后的考虑。在根级别文件中定义如下内容:
ext {
compileSdkVersion=26
}
您正在向rootProject
对象添加额外属性。这意味着在module/build.gradle文件中,可以使用
rootProject.ext
检索此值:
android {
compileSdkVersion rootProject.ext.compileSdkVersion
}
谢谢那么
这个.myExtProp
呢?它是否与脚本文件中的project
scope相同?