前言: java构建工具的主要作用是依赖管理和构建的生命周期管理。gradle和maven是目前java中最流行的两个构建工具,springboot常用maven,Android studio使用gradle。
目录
- 1. 简介
- 2. Maven
- 2.1 安装
- 2.2 依赖管理
- 2.3 构建生命周期管理
- 3. Gradle
- 3.1 安装
- 3.2 依赖管理
- 总结
1. 简介
主流java构建工具:
- Ant
- Maven
- Gradle
2. Maven
2.1 安装
- 从官网下载解压到本地目录。配置好MAVEN_HOME,并设置环境变量
- 主流的Java IDE: Eclipse可以安装Maven。Intellij有内置的Maven可以使用。
2.2 依赖管理
Maven的配置文件是.pom文件,它使用XML文件描述正在构建的项目以及与第三方模块有关的软件依赖性,构建顺序以及所需的插件。可以提前定义打包和编译之类的任务。用springboot举例:
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.vs</groupId><artifactId>com.vs.maven.gradle</artifactId><version>1.0</version><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.2.6.RELEASE</version></parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.25</version></dependency></dependencies><properties><java.version>1.8</java.version></properties><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
</project>
Maven将从不同的仓库下载库和插件,然后将它们全部放入本地计算机的缓存中。
2.3 构建生命周期管理
Maven有三个生命周期,每个生命周期又分为多个阶段:
- Clean:包含3个阶段,与清理上次构建生成的文件相关
- Default:Maven的核心生命周期,包含多个阶段如预处理、编译、测试、打包、安装到本地仓库、发布到远程仓库等。
- Site: 包含4个阶段,与生成项目报告,站点,发布站点相关。
3. Gradle
3.1 安装
- 从官网下载解压到本地目录。配置好GRADLE_HOME,并设置环境变量
- 主流的Java IDE: Eclipse可以安装Gradle。Intellij有内置的Gradle可以使用。
3.2 依赖管理
相比于pom文件更加简洁,在pom.xml中我们需要引入一个依赖时需要将它的groupId, artifactId和version都用标签引起来。但是在build.gradle中仅仅需要将三者的value用:连起来,并"调用compile函数"。
例如:
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId></dependency>
</dependencies>
对应的gradle配置:
dependencies {compile("org.springframework.boot:spring-boot-starter-security")
}
总结
- gradle使用了Groovy作为配置文件,相较于maven的pom文件更加灵活
- Gradle和Maven都支持并行的项目构建和依赖解析。但是gradle的三个特点让gradle可以跑的比maven快上一点:
- 增量构建
- 构建缓存
- Gradle守护进程
- Gradle非常灵活,并且基于脚本。自定义构建将很容易在Gradle上完成。
- Gradle功能更强大。但是,有时候一个中小型的项目不需要它提供的大多数功能,则Maven可能就是最佳选择。而Gradle则是大型项目的最佳选择。