Gradle使用笔记
Gradle 是一个专注于构建自动化、提供多语言支持的构建工具,假如你需要构建、测试、发布以及部署软件到某些平台,Gradle 提供一个灵活的模型,提供从编译、打包代码并发布到网站的整个开发生命周期支持,Gradle 设计之初就考虑到支持构建自动化,多语言以及跨平台。Gradle 目前支持的语言主要有 Java,Scala,Android,C/C++,Groovy。和开发工具以及持续集成服务器整合在一起,如:Eclipse,Intellij,Jenkins。
Gradle 的优势
- 免费
- 社区完善
- AndroidStudio 自动构建工具
- 相比 xml 配置文件,语法极尽简洁,后续例子会给出相关代码对比
- 新技术总是很酷
在 Windows7 下安装 Gradle
Gradle 的运行需要Java JDK 的支持,JDK 的版本至少是1.7。cmd 运行 java -version 以验证 java 版本。
C:\Users\kyyee> java -version java version "1.8.0_74" Java(TM) SE Runtime Environment (build 1.8.0_74-b02) Java HotSpot(TM) 64-bit Server VM (build 25.74-b02, mixed mode)
使用包管理工具安装
Chocolatey 是 Windows 下的一个包管理工具
安装完成后在 cmd 运行 choco install gradle
C:\Users\kyyee> choco install gradle
手动安装
- 最新 Gradle 二进制文件包下载,以前的版本下载
- 解压二进制文件包,将二进制文件包复制到希望安装的目录下如:C:\Program Files (x86)\Gradle
- 配置系统环境变量
GRADLE_HOME=”C:\Program Files (x86)\Gradle\gradle-3.4.1”
PATH=”%GRADLE_HOME%/bin” - 验证你的安装
C:\Users\kyyee> gradle -v
输入如图所示,表示安装成功。
在 IDEA 中使用 Gradle
进入 IDEA 创建新项目的引导界面,选择创建 Gradle 项目,如图所示。
勾选 Web ,IDEA 创建的目录结构如图所示。
不勾选 Web ,IDEA 创建的目录结构如图所示。
点击Next进入下一步,如图所示。
这里需要填写项目的组织所有者和项目名称,进入下一步,如图所示。
建议全部勾选并选择本地Gradle,进入下一步,确认信息,点击Finish,一个Gradle项目就构建完成了。
IDEA 中的 gradle 解析
目录结构
一般来说,使用 IDEA 引导生成的 gradle 项目,目录层次如下:
├── .gradle 项目 gradle 的记录 ├── .idea 项目IDEA 配置信息 ├── gradle gradle 版本信息,版本下载地址,方便同意gradle版本 ├── src 项目根目录 ├── main ├── java Java 代码 ├── resources 资源 ├── test ├── build.gradle 构建脚本 ├── demo.iml 项目配置文件,导入项目自动生成 ├── gradlew gradle unix 启动脚本 ├── gradlew.bat gradle windows 启动脚本
gradlew 与 gradlew.bat 脚本文件在即使没装 gradle 的机器上也能运行,gradlew 与 gradle 的命令大致相同,只是 gradlew 多了一个环境检测。
build.gradle 详解
这是一个默认的gradle配置文件
buildscript { ext { springBootVersion = '1.5.2.RELEASE' } repositories { mavenCentral() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") } } apply plugin: 'java' apply plugin: 'eclipse' apply plugin: 'org.springframework.boot' version = '0.0.1-SNAPSHOT' sourceCompatibility = 1.8 repositories { mavenCentral() } dependencies { compile('org.springframework.boot:spring-boot-starter-web') testCompile('org.springframework.boot:spring-boot-starter-test') }
buildscript 代码块
脚本自身需要的依赖、仓库和扩展
apply plugin
引入插件
repositories 仓库
仓库地址(只讨论 maven 仓库),这里可引入的仓库有两类,远程中心仓库,本地仓库。
远程中心仓库主要有两种引入方式。
maven { url("http://maven.aliyun.com/nexus/content/groups/public/") // 阿里云远程仓库 } mavenCentral()
maven 中心仓库 repo1.maven.org/maven2 速度较慢,建议使用阿里云远程镜像仓库,当在阿里云远程镜像仓库中找不到资源时采取中心仓库下载
本地仓库同样有两种方式引入。
mavenLocal() maven { url "file:///D:/.m2/repository" }
实际上,当你的 maven 本地仓库为 C:/Users/kyyee/.m2/repository/ 时,你才可以使用mavenLocal(),否则 gradle 是找不到本地 maven 仓库的,此时只能使用 url 文件定位。
dependencies 依赖
如果你细致读下来,相信你已经对 gradle 有了初步认识。对比 maven 构建工具的 pom.xml ,相信 build.gradle 让你眼前一亮。对于构建工具来说,依赖管理是它的灵魂。
使用gradle的依赖管理很简单,mvnrepository 搜索需要使用的jar包名,选择合适的jar包进入详情页,选择合适的版本,复制 gradle 依赖代码粘贴在 dependencies 里面。