gradle 快速入门

48 阅读3分钟

1、简介

Gradle是一款Google推出的 基于JVM、 通用灵活的 项目构建工具, 支持Maven,JCenter多种第三方仓库;支持传递性依赖管理、废弃了繁杂的xml文件,转而使用 简洁的 、 支持多种语言 (例如:java、groovy等)的 build脚本文件 。

官网地址:https://gradle.org/

2、下载并配置

1、gradle 依赖 jdk 必须保证 jdk 在 8 或者 8 以上。

$ java -version
java version "1.8.0_121"

2、选择对应的版本进行下载

gradle.org/releases/

image.png

3、配置环境变量

image.png

4、测试环境变量是否生效

image.png

3、镜像加速

  • 全局配置

如果你没有设置 GRADLE_HOME 环境变量的话,默认情况下在用户目录下的 .gradle/ 文件夹下创建文件 init.gradle (这个文件默认是没有创建的,需手动创建),添加以下配置信息即可

配置 GRADLE_HOME 环境变量

image.png

settingsEvaluated { settings ->
    println "aliyun pluginManagement"
    settings.pluginManagement {
        repositories {
            maven { url "https://maven.aliyun.com/repository/gradle-plugin" }
            maven { url "https://maven.aliyun.com/repository/spring-plugin" }
            gradlePluginPortal()
        }
    }
}

如下图所示:

image.png

  • 项目级配置

在项目的根目录下 /settings.gradle 文件中第一行加入,注意这配置必须要放在开头

pluginManagement {
    println "aliyun pluginManagement"
    repositories {
            maven { url "https://maven.aliyun.com/repository/gradle-plugin" }
            maven { url "https://maven.aliyun.com/repository/spring-plugin" }
            gradlePluginPortal()
    }
}

常规依赖库镜像加速

  • 全局配置 用户根目录下/.gradle/init.gradle
buildscript {
    repositories {
        println "aliyun repositories"
        maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url 'https://maven.aliyun.com/repository/central' }
        maven { url 'https://maven.aliyun.com/repository/public' }
    }

    allprojects {
        println "aliyun allprojects ${project.name}"
        repositories {
            maven { url 'https://maven.aliyun.com/repository/google' }
            maven { url 'https://maven.aliyun.com/repository/central' }
            maven { url 'https://maven.aliyun.com/repository/public' }
        }
    }
}
  • 项目级配置 项目根路径/build.gradle 这里以 Spring Boot 为例,Android 项目也是类似
buildscript {
    ext {
        springBootVersion = '2.0.6.RELEASE'
    }
    repositories {
        maven { url "https://maven.aliyun.com/repository/gradle-plugin" }
        maven { url "https://maven.aliyun.com/repository/spring-plugin" }
        gradlePluginPortal()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}

apply plugin: 'java'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'

group = 'com.jacknic'
version = '1.0.0'
sourceCompatibility = 1.8

repositories {
        println "aliyun repositories ${project.name}"
        maven { url 'https://maven.aliyun.com/repository/central' }
        maven { url 'https://maven.aliyun.com/repository/public' }
}

dependencies {
    testImplementation('org.springframework.boot:spring-boot-starter-test')
    implementation('org.springframework.boot:spring-boot-starter-web')
}

4、创建项目

  • idea gradle 配置

image.png

  • 创建项目

image.png

如果由于网络原因无法下载 gradlew 如下图所示,项目创建失败

image.png

可以进行设置如下图所示

image.png

项目创建完成,项目的结构如下:

image.png

运行 init, wrapper

image.png

1、build.gradle

它表示Gradle的项目构建脚本,在里面我们可以通过Groovy来编写脚本,在Gradle中,一个build.gradle就对应一个项目,build.gradle放在Gradle项目的根目录下,表示它对应的是根项目,build.gradle放在Gradle项目的其他子目录下,表示它对应的是子项目,Gradle构建时会为每一个build.gradle创建一个对应的Project对象,这样编写build.gradle时就可以使用Project接口中的方法。

2、settings.gradle

它表示Gradle的多项目配置脚本,存放在Gradle项目的根目录下,在里面可以通过include来决定哪些子项目会参与构建,Gradle构建时会为settings.gradle创建一个对应的Settings对象,include也只是Settings接口中的一个方法。

3、Gradle Wrapper

gradle init执行时会同时执行wrapper任务,wrapper任务会创建gradle/wrapper目录,并创建gradle/wrapper目录下的gradle-wrapper.jar、gradle-wrapper.properties这两个文件,还同时创建gradlew、gradlew.bat这两个脚本,它们统称为Gradle Wrapper,是对Gradle的一层包装。

Gradle Wrapper的作用就是可以让你的电脑在不安装配置Gradle环境的前提下运行Gradle项目,例如当你的Gradle项目被用户A clone下来时,而用户A的电脑上没有安装配置Gradle环境,用户A通过Gradle构建项目时,Gradle Wrapper就会从指定下载位置下载Gradle,并解压到电脑的指定位置,然后用户A就可以在不配置Gradle系统变量的前提下在Gradle项目的命令行中运行gradlew或gradlew.bat脚本来使用gradle命令,假设用户A要运行gradle -v命令,在linux平台下只需要运行./gradlew -v,在window平台下只需要运行gradlew -v,只是把gradle替换成gradlew

Gradle Wrapper的每个文件含义如下:

1、gradlew:用于在linux平台下执行gradle命令的脚本;

2、gradlew.bat:用于在window平台下执行gradle命令的脚本;

3、gradle-wrapper.jar:包含Gradle Wrapper运行时的逻辑代码;

4、gradle-wrapper.properties:用于指定Gradle的下载位置和解压位置;

gradle-wrapper.properties中各个字段解释如下:

distributionBase=GRADLE_USER_HOME  # 下载的Gradle的压缩包解压后的主目录,为GRADLE_USER_HOME,在window中它表示**C:/用户/你电脑登录的用户名/.gradle/** ,在mac中它表示**~/.gradle/**
distributionPath=wrapper/dists # 相对于distributionBase的解压后的Gradle的路径,为wrapper/dists
distributionUrl=https://services.gradle.org/distributions/gradle-7.4.2-bin.zip # Grade压缩包的下载地址
zipStoreBase=GRADLE_USER_HOME # 同distributionBase,不过是表示存放下载的Gradle的压缩包的主目录
zipStorePath=wrapper/dists # 同distributionPath,不过是表示存放下载的Gradle的压缩包的路径

使用Gradle Wrapper后,就可以统一项目在不同用户电脑上的Gradle版本,同时不必让运行这个Gradle项目的人安装配置Gradle环境,提高了开发效率。

5、构建项目

```
gradle build
```

image.png

生成了对应的jar包

image.png

6、创建springboot 项目实战

  • 创建项目

image.png

选择springboot 配置

image.png

创建完成如下图所示:

image.png

运行结果如下:

image.png