Gradle 快速使用

Gradle 快速使用

!!!!使用Gradle-Kotlin 构建spring boot项目 !!!!

简介

Gradle官网:https://docs.gradle.org/

Gradle 是一种开源自动化构建工具,支持多语言环境,受 Ant、Maven 思想的影响,集二者之大成,相比 Ant 的不规范,Maven 的配置复杂、生命周期限制严重,Gradle 既规范也更灵活,可以使用DSL (领域特定语言,如Groovy 或 Kotlin)编写构建脚本,脚本更短小精悍

它的特性有:

  • 高度定制化:模块化可扩展,更灵活
  • 构建迅速:支持并行构建,自动复用之前任务构建的结果以提高效率
  • 功能强大:支持多语言环境,包含 Java、Android、C++、Groovy、Javascript 等项目的构建
Ant、Maven 有的 Gradle也有,Gradle有的它们不一定有;

Ant、Maven能干的,Gradle 都能干,而且干得更好

构建springboot项目

创建项目

在这里使用idea的Spring Initalizr进行简单的项目构建,类型为Gradle - Kotlin。

在这里插入图片描述

完成后项目目录如下:

在这里插入图片描述

关键文件及其内部的结构

参考大佬的文章:https://zhuanlan.zhihu.com/p/578972804

关键文件的概念: 基于上述目录的图片

  • gradle

    • gradle-wrapper.properties:指定 Gradle 构建工具的版本和下载地址。
      • distributionBase:指定 Gradle 分发包的基本 URL。默认情况下,它是 Gradle 官方仓库的 URL。
      • distributionPath:指定 Gradle 分发包的存储路径。默认情况下,它是在项目根目录下的 gradle/wrapper 目录。
      • zipStoreBase:指定分发包存储的基本 URL。默认情况下,它是 Gradle 官方仓库的 URL。
      • zipStorePath:指定分发包存储的路径。默认情况下,它是在 distributionPath 指定的目录下的 dists 目录。
  • build.gradle.kts:Gradle 构建工具的 Kotlin DSL配置文件,相当于maven的 pom.xml

    • //build.gradle.kts的大致结构
      
      plugins {
          java
          id("org.springframework.boot") version "2.1.16.RELEASE"
          id("io.spring.dependency-management") version "1.0.11.RELEASE"
      }
      
      group = "com.example"
      version = "0.0.1-SNAPSHOT"
      
      java {
          sourceCompatibility = JavaVersion.VERSION_8
      }
      
      repositories {
          mavenCentral()
      }
      
      dependencies {
          implementation("org.springframework.boot:spring-boot-starter-web")
          testImplementation("org.springframework.boot:spring-boot-starter-test")
      }
      
      tasks.withType<Test> {
          useJUnitPlatform()
      }
      
      
    • plugins:该属性用于声明和配置需要使用的插件。插件是 Gradle 的核心功能扩展,可以添加额外的构建任务和功能。可以使用 id() 函数指定要应用的插件,例如 id("java") 表示应用 Java 插件。

    • group:该属性用于定义项目的组织或组织名称。一般用于 Maven 坐标的 groupId(组织ID)部分。它在发布构件到仓库时会被用于唯一标识项目所属组织。

    • version:该属性用于定义项目的版本号。一般用于 Maven 坐标的 version(版本号)部分。它在发布构件到仓库时会被用于标识项目的版本。

    • java: 该属性用于配置 Java 插件相关的设置。可以指定项目的编译版本、源代码和资源目录等。例如,sourceCompatibility = JavaVersion.VERSION_11 表示指定使用 Java 11 版本进行编译。

    • repositories:该属性用于配置项目的仓库源,即依赖项的获取位置。可以指定本地或远程的 Maven 仓库、JCenter、Maven Central 等。通过配置 mavenCentral()jcenter() 等函数来添加默认的远程仓库源。

    • dependencies: 该属性用于定义项目的依赖项。例如,implementation("org.jsoup:jsoup:1.14.1") 表示引入 Jsoup 1.14.1 版本的库作为编译时依赖。

    • dependencyManagement

      • - 统一管理依赖项版本:通过在 `dependencyManagement` 块中声明依赖项及其版本号,可以确保整个项目中使用的相同依赖项都使用统一的版本。
        
        - 管理传递性依赖项:当一个依赖项引入其他依赖项时,Gradle 在默认情况下会选择适配的版本。但是,使用 `dependencyManagement` 可以明确指定所需的传递性依赖项版本,从而更精确地控制整个项目的依赖项版本。
        
    • tasks.withType:该属性用于选择和配置特定类型的构建任务。在该例子中,选择了测试任务(Test),可以对单元测试或集成测试任务进行配置。

  • setting.gradle.kts:用于定义项目中的子模块以及它们之间的依赖关系。

  • gradle.properties(此处无):用于设置全局的构建属性和参数,可以被其他配置文件引用,属性的格式为 key=value

添加依赖

仓库地址

  1. 正常搜索依赖,选择Gradle(Kotlin)即可

在这里插入图片描述

  1. 将依赖添加到build.gradle.kts文件中。找到dependencies{},将依赖的坐标放入即可。例如:
dependencies {
    implementation("org.springframework.boot:spring-boot-starter-web")
    implementation("com.mysql:mysql-connector-j:8.1.0")
    testImplementation("org.springframework.boot:spring-boot-starter-test")
}

重构Gradle的项目模型

在idea的侧栏打开Gradle,点击刷新自动构建。

在这里插入图片描述

注意

构建时间会很久,可能会因为网络状态或权限导致构建失败!

侧边栏的结构

侧边栏的结构,每一个子工程都至少包括tasks和dependencies

主工程除了tasks,dependencies,还多一个run configurations

Tasks里面就是 gradle定义好的原生task;当然也可以自定义task,会出现在侧边栏 tasks/other下面。

常用的task(Tasks–build下):clean、build、install

clean:清理构建生成的文件和目录。

build:构建项目并生成可部署的产物(例如 JAR、WAR 等)。

install:将构建的产物安装到本地 Maven 或 Ivy 仓库中。

可部署的产物(例如 JAR、WAR 等)。

install:将构建的产物安装到本地 Maven 或 Ivy 仓库中。

在这里插入图片描述

除了用侧边栏的便捷方式,还可以用终端指令的方式执行命令。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值