Gradle - Wrapper

Gradle - Wrapper 首页 / Gradle入门教程 / Gradle - Wrapper

Gradle包装器(wrapper)使无涯教程可以运行具有指定版本和设置的构建,而无需安装Gradle。该包装器(wrapper)可以视为Windows上的批处理脚本,以及其他操作系统上的Shell脚本。当使用包装器调用Gradle时,它会自动下载并构建指定的版本。

下图展示了Gradle的工作流程:

Gradle Wrapper

对于基于UNIX的系统,可以找到 gradlew 文件,对于Windows系统,可以找到 gradlew.bat 。这些文件充当gradle命令,因此,如果计算机上未安装Gradle,则会自动下载并安装它。

也可以定义定义包装器(wrapper)版本的任务。如果执行此任务,它将创建包装器(wrapper)并下载正确版本的Gradle。

Gradle Wrapper好处

以下是使用Gradle包装器的一些好处:

  • Gradle包装器可在指定的Gradle版本上标准化项目,从而使构建更可靠,更可靠。
  • Gradle包装器为不同的用户提供了相同的Gradle版本,执行环境就像更改Wrapper定义一样简单。

无涯教程将使用第一个Gradle包装器执行以下操作:

  • 设置一个新的Gradle项目并为其添加包装。
  • 使用现有包装器运行项目。
  • 将包装程序升级到最新版本的Gradle。

添加Gradle包装器

Gradle带有一个称为 wrapper 的内置任务。执行此任务后,将在项目中生成基本包装文件。要将包装器添加到项目中,请运行包装器命令,如下所示:

gradle wrapper

输出:

Gradle Wrapper

上面的命令将为项目提供包装器,并将包装器属性文件生成到目录 gradle/wrapper/gradle-wrapper.properties 中。

Gradle Wrapper

gradle-wrapper属性文件的内容如下:

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.5.1-bin.zip
zipStoreBase=GRADLE_USER_HOME

此文件包含有关Gradle分发的以下信息:

  • 托管Gradle发行版的服务器。
  • Gradle分发的类型,默认情况下,它是 bin分发,仅包含运行时,不包含示例代码和文档。
  • Gradle版本用于执行构建。默认情况下,包装器任务选择计算机的已安装版本。

在包装文件生成过程中,可以通过命令行配置上述所有方面。以下命令用于指定用于下载和执行包装程序的Gradle版本:

--gradle-version

下面的命令用于指定用于包装器的Gradle分发类型。可用选项为 bin all ,默认值为'bin':

--distribution-type

下面的命令用于将完整的URL指向Gradle发行zip文件:

--gradle-distribution-url

考虑以下示例,以解释命令行选项的用法。希望使用6.1版创建包装器,并使用 -all发行版来使无涯教程的IDE启用代码补全功能并能够导航至Gradle源代码。以下命令可以满足这些要求:

$ gradle wrapper --gradle-version 6.1 --distribution-type all

上面的命令将创建一个版本为6.1的包装器。

使用Gradle包装器

建议使用包装器执行项目的构建,以确保构建的标准,控制和可靠执行。包装程序执行构建,就像使用Gradle安装执行构建一样。根据无涯教程的操作系统,可以运行 gradlew gradlew.bat 命令而不是gradle命令。以下命令演示了如何在Windows机器上对基于Java的项目使用包装器:

gradlew.bat build

输出:

Gradle Wrapper

如果Gradle发行版在计算机上不可用,包装程序将下载并提供给无涯教程使用,并将其存储在本地文件系统中。

无涯教程网

后续的构建调用将重用现有的本地发行版,因为Gradle属性中的发行版URL不变。

更新Gradle包装器

为了使软件与最新版本保持联系,更新是必需的,以便从新功能和改进中受益。可以通过更改包装器属性文件中的分发URL属性来手动升级Gradle版本。

但是,建议通过包装器任务升级包装器版本,并传递指定的Gradle版本。尽管必须将对包装器文件的这些更改提交给版本控制,但包装器任务可确保对Wrapper shell脚本所做的所有优化都应用于项目。

gradle包装器任务用于为指定版本生成包装器。默认情况下,它将考虑已安装的版本。

要将Gradle包装器升级到指定版本,请运行以下命令:

gradlew wrapper --gradle-version6.1

上面的命令会将项目升级到Gradle版本6.1。考虑以下输出:

Gradle Wrapper

可以通过执行以下命令来检查指定的版本:

gradlew -version

自定义Gradle包装器

Gradle的默认运行时行为相当不错,但是可以自定义Gradle。安全约束可能需要为使用Gradle的组织自定义包装。但是,内置包装器任务提供了许多选项来创建所需的运行时行为。

假设不想重复使用-all选项,以便节省一些键盘笔触。为此,可以重新配置包装器任务。将以下代码段添加到 build.gradle文件中以自定义包装器任务:

wrapper{
    distributionType = Wrapper.DistributionType.ALL
}

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

Spring Boot与Kubernetes云原生微服务实践 -〔杨波〕

安全攻防技能30讲 -〔何为舟〕

体验设计案例课 -〔炒炒〕

流程型组织15讲 -〔蒋伟良〕

Spark性能调优实战 -〔吴磊〕

Spring编程常见错误50例 -〔傅健〕

徐昊 · TDD项目实战70讲 -〔徐昊〕

Vue 3 企业级项目实战课 -〔杨文坚〕

手把手带你写一个 MiniTomcat -〔郭屹〕

好记忆不如烂笔头。留下您的足迹吧 :)