1.maven与gradle的比较:
- 侧重点:同样作为项目构建工具,maven侧重于项目jar包管理,gradle侧重于项目的构建
- 构建性能:gradle远高于maven
2.maven目录结构:
- target
- classes
- src
- main
- java
- resources
- test
- java
- resources
- main
- pom.xml
3.gradle目录结构:
- build:封装编译后的字节码、打成的包[Jar/War]、测试报告等,对应maven中的target目录
- gradle:封装包装器文件夹
- wrapper
- gradle-wrapper.jar
- gradle-wrapper.properties
- wrapper
- src
- main
- java
- resources
- test
- java
- resources
- main
- gradlew
- gradlew.bat:包装器启动脚本
- build.gradle:构建脚本,类似maven中的pom.xml
- settings.gradle:设置文件,定义项目及子项目名称信息,和项目是一一对应关系
4.gradle常用命令:
- gradle clean:清空build目录
- gradle classes:编译src-main目录下的源代码和配置文件
- gradle test:编译src-test目录下的测试代码,生成测试报告
- gradle build:构建项目(编译-测试-打包)
- gradle build -x test:跳过测试构建
以上gradle命令均需要在含有build.gradle的目录执行
5.启动gradle初始化脚本:
gradle底层也是从maven仓库中下载jar包,有一些maven仓库在国外下载缓慢,可以通过启用init.gradle的方式,设置maven下载地址为国内镜像源。启动方式有以下几种:
- 将以.gradle结尾的文件放到 USER_HOME/.gradle/ 目录下
- 将以.gradle结尾的文件放到 USER_HOME/.gradle/init.d/ 目录下
- 将以.gradle结尾的文件放到 GRADLE_HOME/init.d/ 目录下
如果存在多种启动方式,会按照1-3序号依次执行gradle初始化脚本
6.gradle wrapper
gradle wrapper是对gradle的一层封装,用于解决实际开发中可能会遇到的不同项目需要不同版本gradle的问题:
- 对方电脑没有装gradle
- 对方电脑安装的gradle版本较低
- 有了gradle wrapper之后,如果本地不配置gradle,下载gradle项目后,使用项目自带的wrapper操作也可以
项目中的gradlew、gradlew.bat脚本用的就是wrapper中规定的gradle版本(在命令行中用gradle命令调用的是本地安装的gradle、gradlew调用的是wrapper中的gradle)
7.gradle-wrapper.properties文件解读
存储项目wrapper对应的gradle配置
- distributionBase:下载gradle压缩包解压后存储的主目录
- zipStoreBase:同distributionBase,存放zip文件