Gradle学习

本文介绍Gradle中使用ext属性定义全局变量的方法及其应用场景,包括如何通过def定义局部变量,以及利用Gradle管理依赖冲突项的具体操作。此外,还提供了查看项目依赖树的多种实用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

gradle使用技巧(def定义变量 rootProject.ext 添加全局变量)

gradle的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

gradlew常用命令

利用gradle管理依赖冲突项

Android 查看项目依赖树的四种方式

1.利用gradle task
dependencies

2.利用gradle view 插件

3.利用./gradlew build --scan生成依赖的网页

### Gradle 学习教程入门指南 #### 了解 Gradle 是什么? Gradle 是一种基于 Groovy 或 Kotlin DSL 的自动化构建工具,适用于多语言环境下的项目管理。它不仅支持 Java 和 Android 项目的开发,还能够处理复杂的依赖关系和任务编排[^1]。 #### 掌握安装方法 对于初学者来说,在本地环境中正确配置 Gradle 至关重要。通常有两种方式来完成这一操作:一是通过官方提供的二进制分发包手动下载并设置路径;二是利用 SDKMAN! 等版本控制工具简化整个过程。 #### 编写第一个 `build.gradle` 文件 创建一个简单的文本文件命名为 `build.gradle` 并放置于项目根目录下。此文件定义了项目的属性以及如何对其进行打包、运行测试等具体行为。下面是一段基础示例: ```groovy apply plugin: 'java' repositories { mavenCentral() } dependencies { testImplementation 'junit:junit:4.13' } ``` 这段脚本应用了一个名为 java 的插件,并指定了 Maven Central 作为仓库源之一,同时还引入了 JUnit 测试框架作为依赖项。 #### 运行基本命令 打开命令提示符或终端窗口进入包含有上述 `build.gradle` 文件所在的文件夹内输入如下指令即可触发相应动作: - 查看帮助文档:`gradle help --task <task_name>` - 清理旧版输出物:`gradle clean` - 组合多个任务一起执行:`gradle build` 将依次调用 compileJava, processResources, classes 及 jar 等子任务[^3] #### 添加事件监听器 为了更好地调试或是实现某些特殊需求,可以在全局范围内注册回调函数响应特定时刻发生的事件。例如当所有子项目加载完毕之后打印一条消息到标准输出流中去: ```groovy gradle.projectsLoaded { println "All projects have been loaded." } ``` #### 获取更多信息资源 除了查阅手册外还可以访问官方网站获取最新资讯和技术文章。此外社区论坛也是解决问题的好地方,那里聚集了许多经验丰富的开发者愿意分享自己的见解[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值