Gradle入门级教程,看完不会你找我!

3 篇文章 0 订阅
2 篇文章 0 订阅

1、概述

Gradle 是一种流行的构建自动化工具,用于在软件开发过程中自动化执行各种任务,如编译、运行测试、打包和部署【可以理解成和Maven的作用一样,只不过更灵活强大一些】。以下是Gradle的简要介绍:

1.1、特点和优势
  1. 灵活性:支持多语言项目,易于定制和扩展。

  2. 性能:采用增量构建和缓存机制,提高构建速度。

  3. 可读性:使用Groovy或Kotlin等DSL编写构建脚本,易于阅读和维护。

  4. 插件生态系统:丰富的插件库,支持各种工具和框架的集成。

  5. 多项目构建:对多模块项目和依赖管理提供良好支持。

1.2、工作原理

Gradle基于领域特定语言(DSL)来描述构建过程。它使用Groovy或Kotlin语言编写脚本,这些脚本定义了项目的结构、依赖和所需操作。

Gradle会根据这些脚本文件来执行各种构建任务,它会自动处理依赖关系、并行执行任务,并在必要时重新构建已经改变的部分。

1.3、应用领域

Gradle广泛应用于Java、Kotlin、Groovy等语言的项目中,同时也被用于构建Android应用程序。它还可以被用于构建C/C++、JavaScript等不同类型的项目。

总之,Gradle作为一款灵活且功能强大的构建工具,为开发人员提供了高效构建和自动化的能力,有助于简化项目的管理和部署过程。

2、安装

2.1、官网地址

2.2、下载列表

此次安装用的是7.6.3版本,如需其他版本请自行下载即可,由于Gradle是基于Java的,因此首先要安装Java JDK,本文不做详述;

2.3、解压安装

将下载的zip压缩包解压后放到指定文件夹即可,如下图:

2.4、配置环境变量

以上仅完成了gradle的环境变量配置,由于gradle需要下载相关依赖包,默认是在c盘里面,后续可能会占用较多磁盘,因此增加一个环境变量的配置,修改下载下来的依赖的存储位置,可以理解成maven的location标签配置,具体如下图:

2.5、验证是否成功

以下图片证明安装成功:

3、配置全局脚本

可以在gradle的init.d目录下,创建以.gradle结尾的文件,.gradle文件可以实现在build开始之前执行。因此可以在这个文件中配置预先加载的操作。当然你也可以直接配置到具体的项目里面,使用方式和maven类似,具体文件里面的内容如下【可以根据实际情况进行调整】;

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/' }
        }
    }
}
  1. allprojects:这部分表示我们正在配置所有项目的仓库设置。这确保了对整个构建进行全局设置。

  2. repositories:这一部分指定了项目的依赖仓库。在这里,我们使用了几种不同的仓库来源:

    • mavenLocal():这行代码告诉 Gradle 使用本地 Maven 仓库作为第一个依赖源。

    • maven { name "Alibaba" ; url "https://maven.aliyun.com/repository/public" }:这表示我们向 Gradle 声明了一个名为 "Alibaba" 的远程 Maven 仓库,指定了阿里云镜像的地址。

    • maven { name "Bstek" ; url "https://nexus.bsdn.org/content/groups/public/" }:这一行声明了一个名为 "Bstek" 的远程 Maven 仓库,指定了 Nexus 私有仓库的地址,可以根据自己实际情况修改配置。

    • mavenCentral():最后,我们指定了 Maven 中央仓库,作为备用的依赖源,直接声明即可,无需额外配置。

  3. buildscript:这部分指定了构建脚本的仓库配置。

    • repositories:在这里,我们又一次定义了构建脚本的仓库配置,包括了多个 Maven 仓库:

      • maven { name "Alibaba" ; url 'https://maven.aliyun.com/repository/public' }:这里再次声明了名为 "Alibaba" 的 Maven 仓库,以确保构建脚本能够从阿里云镜像获取依赖。

      • maven { name "Bstek" ; url 'https://nexus.bsdn.org/content/groups/public/' }:同样地,我们也声明了名为 "Bstek" 的 Maven 仓库,以供构建脚本使用。

      • maven { name "M2" ; url 'https://plugins.gradle.org/m2/' }:最后,我们指定了来自 plugins.gradle.org 的额外 Maven 仓库,用于获取 Gradle 插件。

通过这样的配置,Gradle 将会优先使用本地 Maven 仓库,如果找不到所需的依赖,它会依次尝试使用阿里云镜像、Nexus 私有仓库和 Maven 中央仓库,同时还会从额外的插件仓库中获取 Gradle 插件。

注意点:

配置中有 mavenLocal() 就是说明首先使用 maven 的本地仓库获取依赖。因此需要配置 M2_HOME 环境变量,但是本地实际上有木有都是没有影响的,解释如下:

添加 mavenLocal() 依赖仓库并不要求你在电脑上安装 Maven。这是因为 mavenLocal() 实际上指向的是本地 Maven 仓库目录,而不是 Maven 工具本身。
​
当你在 Gradle 项目中使用 mavenLocal() 时,Gradle 将尝试从默认的本地 Maven 仓库目录(通常在用户目录下的 .m2 文件夹)中解析依赖。如果你的电脑上没有安装 Maven,那么该目录可能为空或者不存在。
​
在这种情况下,如果你尝试从 mavenLocal() 中解析依赖,Gradle 可能会失败,因为它无法在本地 Maven 仓库中找到相应的依赖。但这并不会影响你的系统或其他项目的正常运行。
​
因此,如果你没有安装 Maven,且没有在本地 Maven 仓库中手动安装依赖,添加 mavenLocal() 依赖仓库对你的项目实际上没有积极的影响。一般情况下,只有在你确切知道本地 Maven 仓库中存在所需的依赖时才会使用 mavenLocal()。

4、集成IDEA

首先创建一个springboot项目,步骤如下:

以上便完成了gradle与idea的集成;

5、目录结构分析

src结构为项目目录;gradle文件夹 存放gradle wrapper相关文件;build.gradle相当于maven里面的pom.xml,setting.gradle用于多模块的配置;

Gradle Wrapper 是一个用于管理和分发 Gradle 版本的工具,它允许你在项目中使用特定版本的 Gradle 而无需手动安装。该工具附带了一组脚本和文件,使得项目能够在不同的环境中始终使用相同版本的 Gradle 进行构建。

6、常用功能

6.1、常用命令对比
命令GradleMaven
构建项目./gradlew buildmvn clean install
清理项目./gradlew cleanmvn clean
运行测试./gradlew testmvn test
生成项目文档./gradlew javadocmvn javadoc:javadoc
发布到远程仓库./gradlew publishmvn deploy
列出项目依赖./gradlew dependenciesmvn dependency:tree
扫描项目依赖漏洞./gradlew dependencyCheckAnalyzemvn org.owasp:dependency-check-maven:check
创建新项目使用初始化插件,如 Spring Initializrmvn archetype:generate
6.2、常用功能

Gradle 提供了许多常用功能,包括但不限于以下内容:

  1. 增加依赖:通过在构建脚本中添加依赖声明来引入外部库。例如使用 implementation 关键字添加编译时依赖,或者使用 testImplementation 添加测试时依赖。

    dependencies {
        implementation 'com.example:library:1.0.0'
        testImplementation 'junit:junit:4.12'
    }
  2. 剔除依赖:有时候你可能需要排除特定的传递性依赖。你可以使用 exclude 方法来剔除依赖项。

    dependencies {
        implementation('com.example:library:1.0.0') {
            exclude group: 'org.unwanted', module: 'unwanted-module'
        }
    }
  3. 全局依赖版本管理:使用 dependencyManagement 插件进行全局依赖版本管理。这样一来,你就可以在单独的位置定义和管理依赖库的版本,而不需要在每个模块中都重复声明。

    dependencyManagement {
        imports {
            mavenBom 'group:artifact:version'
        }
    }
  4. 增加插件:通过 plugins 块或者 apply plugin 语句来增加插件。Gradle 提供了很多内置的插件,同时也可以使用第三方插件。

    plugins {
        id 'java'
        id 'application'
    }
  5. 自定义任务:你可以创建自定义任务来执行项目特定的操作,比如清理临时文件、运行定制化的构建过程等等。

这些只是 Gradle 提供的众多功能之一。Gradle 还提供了许多其他强大的功能,比如多项目构建、增量构建、构建缓存、定制化构建逻辑等等。Gradle 的灵活性使得它成为一个广泛使用的构建工具,能够满足各种不同规模和类型的项目需求,具体的请自行探索。

7、参考文献

添加公众号了解更多,定期分享、绝对实用,绝对对你有帮助!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值