Gradle 学习笔记
为什么我们需要一个构建工具
什么是构建
针对 java 项目,构建的过程包括:
生成资源 (有时)
编译
编译测试资源
运行测试
打包:jar,war
运行相关检查,包括 checkstyle 等
生成报告
管理多文件项目时,我们需要的是约定优于配置。例如../src/main/java 存放 java 源文件
编译打包自动化执行,节约时间,避免错误
Gradle 是一种构建工具
高性能
Gradle 可以避免不必要的构建,因为可以利用上一次构建的结果,只重新构建改动的内容。通过 gradle wrapper,可以利用别的机器上的构建的结果。
基于 JVM
只要有 jvm 的地方都可以运行,保证了跨平台的特性。而且,gradle 不仅限于构建 Java 应用,支持 C/C++,JavaScript,Scala,Groovy,Kotlin
约定
继承了 maven 的良好设计,使用约定的配置,同时提供良好的扩展性
扩展性
洞察力
提供了大量的构建信息,方便快速定位性能问题
我们 maven 用的挺好的
gradle 是新技术吗?
不算是,早就在安卓界普及了。比较成熟
gradle 简洁
gradle 基于 groovy 语言,配置的行数比 xml 的 pom 少很多倍
gradle 快
针对同一个 java 项目,gradle 构建的时间比 maven 少很多倍
gradle 灵活
约定大于配置
gradle 可以直接使用 maven 仓库中的依赖
gradle 不是一个全新的东西,没有否定 maven。只是取其精华,去其糟粕
构建工具的发展历程
ant ——> maven ——> gradle
各自解决了一些问题
Gradle 重要概念
Gradle 有两个最重要的概念:project 和 task。一次构建可以有 1 到 n 个 project,每个 project 有 1 到 n 个 task。
构建脚本块
gradle 约定大于配置,以下是顶级的构建脚本声明块
dependencies 中的依赖关系:
implementation:它仅仅对当前的Module
提供接口,使用 implementation 屏蔽了外部模块直接调用它声明的依赖
api:编译时与 implementation 相反,它允许外部模块不管在编译时还是运行时都可以调用 api 声明的依赖。和原来的 compile 很类似。
大部分情况下,默认使用 implementation
速度快
隐藏大部分实现细节
评论