Gradle-使用

安装

  • 明确gradle 版本问题(IDEA安装目录)

    JetBrains\IntelliJ IDEA 2022.1.1\plugins\gradle\lib

    gradle => 7.4
  • gradle 官网

    https://gradle.org/

    https://gradle.org/releases/

  • 下载

    下载选择 点击完整下载(更新https://downloads.gradle-dn.com/distributions/gradle-8.0.1-all.zip)
    • 解压目录

      目录信息
    • 配置环境变量

      1
      2
      3
      4
      5
      # 配置环境变量
      GRADLE_HOME: C:\Download\gradle-7.4.1-all

      Path:
      添加: %GRADLE_HOME%\bin
    • 查看是否成功

      1
      2
      # 查看版本信息
      gradle -v
      成功安装
    • 配置gradle 的本地仓库

      1
      2
      # 配置和 maven 的本地仓库工具一个 GRADLE_USER_HOME(固定键名)
      GRADLE_USER_HOME: C:\Download\apache-maven-3.5.0-bin\conf\repo
      系统环境变量中添加

Gradle 项目目录结构

  • 对比

    maven 项目的对比

创建Gradle项目

  • spring initializr ①

    https://start.spring.io/

    下载
  • 命令行创建

    选择
  • 常用指令

    指令 作用
    gradle clean 清空build 目录
    gradle classes 编译业务代码和配置文件
    gradle test 编译测试代码,生成测试报告
    gradle build 构建项目
    gradle build -x text 跳过测试,构建测试

    指令要在含有 build.gradle 的目录执行

修改 Maven 下载源

  • gradle 压缩包的init.d 目录下创建init.gradle 文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    allprojects{
    repositories {
    mavenLocal()

    def ALIYUN_REPOSITORY = 'https://maven.aliyun.com/repository/public/'
    def ALIYUN_JCENTER= 'https://maven.aliyun.com/repository/jcenter/'
    def ALIYUN_GOOGLE = 'https://maven.aliyun.com/repository/google/'
    def ALIYUN_GRADLE_PLUGIN = 'https://maven.aliyun.com/repository/gradle-plugin/'
    all { ArtifactRepository repo ->
    if(repo instanceof MavenArtifactRepository){
    def url = repo.url.toString()
    if (url.startsWith('https://repo1.maven.org/maven2/')) {
    project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_REPOSITORY."
    remove repo
    }
    if (url.startsWith('https://jcenter.bintray.com/')) {
    project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_JCENTER."
    remove repo
    }
    if (url.startsWith('https://dl.google.com/dl/android/maven2/')) {
    project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_GOOGLE."
    remove repo
    }
    if (url.startsWith('https://plugins.gradle.org/m2/')) {
    project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_GRADLE_PLUGIN."
    remove repo
    }
    }
    }
    maven { url ALIYUN_REPOSITORY }
    maven { url ALIYUN_JCENTER }
    maven { url ALIYUN_GOOGLE }
    maven { url ALIYUN_GRADLE_PLUGIN}
    }
    }
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    allprojects {
    repositories {
    mavenLocal()
    maven {
    name "Alibaba";
    url "https://maven.aliyun.com/repository/public"
    }
    maven {
    name "Bstek";
    url "https://nexus.bsdn.org/content/groups/public/"
    }
    mavenCentral()
    }
    buildscript {
    repositories {
    maven {
    name "Alibaba";
    url 'https://maven.aliyun.com/repository/public'
    }
    maven {
    name "Bstek";
    url 'https://nexus.bsdn.org/content/groups/public/'
    }
    maven {
    name "M2";
    url 'https://plugins.gradle.org/m2/'
    }
    }
    }
    }

Wrapper 包装器

  • 使用

    1
    gradlew.bat -v
  • 参数

    参数名 说明
    gradle wrapper --gradle-version=7.4.2 用于指定使用的gradle 版本
    gradle wrapper --gradle-distribution-url 用于指定下载gradle 发行版的url 地址

IDEA-Gradle

  • 项目创建

    IDEA-Gradle
  • 配置

    配置gradle 环境

可视化正则表达式

WEB-工程

  • 项目创建

    创建
    在这里插入图片描述
  • 修改build.gradle

    1
    2
    3
    4
    5
    plugins {
    id 'java'
    // 添加 war
    id 'war'
    }
  • main 目录下补全目录

    补全目录

聚合工程

  • 创建父工程

    • 修改父工程下gradle.build

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      // 用 allprojects 包裹后,可以被子工程继承同步插件

      allprojects {
      apply plugin:'java'

      group 'com.example'
      version '1.0-SNAPSHOT'

      repositories {
      mavenLocal()
      mavenCentral()
      }

      dependencies {
      testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
      testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
      compileOnly group: 'org.projectlombok', name: 'lombok', version: '1.18.24'
      implementation group: 'org.springframework', name: 'spring-webmvc', version: '5.3.20'

      }

      test {
      useJUnitPlatform()
      }
      }
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
        ```



      + 在父工程下新建`module`

      | `module` |
      | :----------------------------------------------------------: |
      | ![](https://img-blog.csdnimg.cn/5c63b2aa94bf46ef91e03c998e39037b.png) |

      + 新模块

      | `gradle-api` |
      | :----------------------------------------------------------: |
      | ![](https://img-blog.csdnimg.cn/fccb08cbb1cd46cb8e4602a48ac53c82.png) |

      + 继承

      | 删除子工程`build.gradle`内的内容 |
      | :----------------------------------------------------------: |
      | ![](https://img-blog.csdnimg.cn/04a060cb25b44cf49da6c8468c23383b.png) |



      + 子工程相互依赖

      ```properties
      // 使用的前提: settings.gradle 中出现才可以使用 : 是相对于父工程的
      dependencies {
      // gradle-web 添加的子工程名称
      implementation project(":gradle-web")
      }
      目录结构

Gradle-SpringBoot

  • 修改如下配置

    使用本地
  • 创建父工程

    父工程
    在这里插入图片描述