前言

Gradle 是基于 Apache Ant 和 Apache Maven 概念的项目自动化建构工具,在语法上是基于 Groovy 语言的,被广泛地运用到了 Android 开发中,但是在 Java 中,用 Maven 作为构建工具的还是比较多,但也只是暂时!就连 Spring Boot 在 2.3.0 版本中放弃 Maven,使用 Gradle 构建!

images

下面就开始进行构建。

演示环境

  • Spring Boot 2.4.4
  • Java 8
  • IntelliJ IDEA 2020.3.2
  • Gradle 6.8.3

首先得下载 Gradle

个人喜欢下载完整版本,这样点进源码会有注释!

download_gradle

下载完成之后解压到任意磁盘,随后打开 idea 开发工具,先配置 gradle

gradle_config

File | Settings | Build, Execution, Deployment | Build Tools | Gradle 配置本地 gradle 仓库

gradle_repo

然后返回进行创建 Spring Boot 项目

CREATE_GRADLE

Next 之后勾选 Spring Web 依赖足矣

进入项目之后,我们再进行配置一下 gradle

gradle_config

随后打开项目中的 build.gradle,发现有 3 个插件(你可以把 build.gradle 理解成 maven 中的 pom.xml

1
2
3
4
5
plugins {
id 'org.springframework.boot' version '2.4.4'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
}

大致讲下:

  • org.springframework.boot

    很明显,这是 Spring Boot 官方提供的 Gradle 插件,我们可以修改 version 来指定 Spring Boot 的版本

  • io.spring.dependency-management

    就是管理依赖的插件,相当于在 Maven 中的 dependencyManagement

    1
    2
    3
    4
    5
    6
    7
    8
    9
    <dependencyManagement>
    <dependencies>
    <dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.5</version>
    </dependency>
    </dependencies>
    </dependencyManagement>

    这样的话我在子模块中引入的时候,就不用再填写版本号了,好处就是可以统一依赖版本!

    1
    2
    3
    4
    <dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    </dependency>

    gradle 中的写法如下,相比 maven,简洁了许多!

    1
    2
    3
    4
    5
    6
    7
    8
    9
    dependencyManagement {
    dependencies {
    dependency 'commons-io:commons-io:2.5'
    }
    }

    dependencies {
    implementation 'commons-io:commons-io'
    }
  • java

    Java 项目呗,大概就是编译 Java 的(个人理解)

然后创建一个控制器

1
2
3
4
5
6
7
8
@RestController
public class HelloGradleController {

@GetMapping("hello")
public String demo() {
return "Hello Gradle 💋";
}
}

运行主程序,访问 http://localhost:8080/hello

hello

最后,我们可以配置阿里镜像使得加速

只在当前项目生效,就在 build.gradle 添加如下配置

1
2
3
4
5
repositories {
maven {
url "http://maven.aliyun.com/nexus/content/groups/public"
}
}

配置全局生效

用户目录下/.gradle/init.gradle 文件,如果没有,自己创建一个,添加如下配置

1
2
3
4
5
6
7
allprojects {
repositories {
maven {
url "http://maven.aliyun.com/nexus/content/groups/public"
}
}
}

验证是否配置成功

build.gradle 添加一个任务

1
2
3
4
5
6
7
task queryRepos {
doLast {
repositories.each {
println "repository: ${it.name} ('${it.url}')"
}
}
}

然后 cmd 执行 gradle -q queryRepos,如果显示刚刚配置的地址就说明配置成功

1
repository: maven ('http://maven.aliyun.com/nexus/content/groups/public/')

如果提示 gradle 不是内部或外部命令,也不是可运行的程序,自行谷歌配置环境变量!

至此,简单的构建就结束了!