Gradle包装器(wrapper)使无涯教程可以运行具有指定版本和设置的构建,而无需安装Gradle。该包装器(wrapper)可以视为Windows上的批处理脚本,以及其他操作系统上的Shell脚本。当使用包装器调用Gradle时,它会自动下载并构建指定的版本。
下图展示了Gradle的工作流程:
对于基于UNIX的系统,可以找到 gradlew 文件,对于Windows系统,可以找到 gradlew.bat 。这些文件充当gradle命令,因此,如果计算机上未安装Gradle,则会自动下载并安装它。
也可以定义定义包装器(wrapper)版本的任务。如果执行此任务,它将创建包装器(wrapper)并下载正确版本的Gradle。
以下是使用Gradle包装器的一些好处:
无涯教程将使用第一个Gradle包装器执行以下操作:
Gradle带有一个称为 wrapper 的内置任务。执行此任务后,将在项目中生成基本包装文件。要将包装器添加到项目中,请运行包装器命令,如下所示:
gradle wrapper
输出:
上面的命令将为项目提供包装器,并将包装器属性文件生成到目录 gradle/wrapper/gradle-wrapper.properties 中。
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-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安装执行构建一样。根据无涯教程的操作系统,可以运行 gradlew 或 gradlew.bat 命令而不是gradle命令。以下命令演示了如何在Windows机器上对基于Java的项目使用包装器:
gradlew.bat build
输出:
如果Gradle发行版在计算机上不可用,包装程序将下载并提供给无涯教程使用,并将其存储在本地文件系统中。
后续的构建调用将重用现有的本地发行版,因为Gradle属性中的发行版URL不变。
为了使软件与最新版本保持联系,更新是必需的,以便从新功能和改进中受益。可以通过更改包装器属性文件中的分发URL属性来手动升级Gradle版本。
但是,建议通过包装器任务升级包装器版本,并传递指定的Gradle版本。尽管必须将对包装器文件的这些更改提交给版本控制,但包装器任务可确保对Wrapper shell脚本所做的所有优化都应用于项目。
gradle包装器任务用于为指定版本生成包装器。默认情况下,它将考虑已安装的版本。
要将Gradle包装器升级到指定版本,请运行以下命令:
gradlew wrapper --gradle-version6.1
上面的命令会将项目升级到Gradle版本6.1。考虑以下输出:
可以通过执行以下命令来检查指定的版本:
gradlew -version
Gradle的默认运行时行为相当不错,但是可以自定义Gradle。安全约束可能需要为使用Gradle的组织自定义包装。但是,内置包装器任务提供了许多选项来创建所需的运行时行为。
假设不想重复使用-all选项,以便节省一些键盘笔触。为此,可以重新配置包装器任务。将以下代码段添加到
wrapper{ distributionType = Wrapper.DistributionType.ALL }
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)
Spring Boot与Kubernetes云原生微服务实践 -〔杨波〕