gradle使用技巧(def定义变量 rootProject.ext 添加全局变量)
ext相当于一个map属性,可以在根目录下扩充这个属性
ext{
versionName="1.0"
versionCode =1
versions=[
compileSdkVersion: 30,
minSdkVersion: 21,
targetSdkVersion: 30,
versionCode: versionCode,
versionName: versionName,
]
}
ext定义的变量相当于全局变量,在整个项目的各个module子gradle文件中偶读可以访问到
def相当于局部变量,访问域只限于本gradle文件
ext相当于一个map,value类型,支持int/string/boolean/map
常用的做法,是在根目录配置一个config.gradle文件,来统一管理所有模块的编译版本和依赖库版本
访问ext变量有两种方法,一个是直接在子module目录的build.gradle中引用,需要指定根目录地址
module目录下build.gradle
//直接引用
rootProject.ext.versions.versionName
//可以定义一个局部变量,不用重复输入rootProject.ext
def version=rootProject.ext.versions
version.versionName
另一种方法,是在根目录的build.gradle目录中引用config.gradle,这样,module目录build.gradle可以直接访问ext中的变量
根目录的build.gradle
//引入config.gradle 文件内容
//放在开头结尾都可以
apply from: "config.gradle"
module目录中的build.gradle
//直接引用ext变量
versions.versionName
利用gradle管理依赖冲突项
1.利用gradle task
dependencies
2.利用gradle view 插件
3.利用./gradlew build --scan生成依赖的网页