拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 Gradle Wrapper指南

Gradle Wrapper指南

白鹭 - 2021-11-24 396 0 0

1.概述

开发人员通常使用Gradle来管理项目的构建生命周期。对于所有新的Android项目,它都是构建工具的默认选择。

在本教程中,我们将学习Gradle Wrapper,这是一个附带的实用程序,可让您更轻松地分发项目。

2.Gradle Wrapper

要构建基于Gradle的项目,我们需要在计算机中安装Gradle。但是,如果我们安装的版本与项目版本不匹配,我们可能会面临许多不兼容的问题。

Gradle Wrapper(也简称为Wrapper解决了此问题。这是一个运行带有声明版本的Gradle任务的脚本。如果未安装声明的版本,则包装程序将安装所需的版本。

包装器的主要优点是我们可以:

  • 无需先安装Gradle,即可在任何计算机上使用Wrapper构建项目
  • 有一个固定的Gradle版本。这将在CI管道上产生可重用和更强大的构建
  • 更改包装器定义即可轻松升级到新的Gradle版本

在接下来的部分中,我们将运行需要在本地安装Gradle的Gradle任务。

2.1 生成包装器文件

要使用包装器,我们需要生成一些特定的文件。**我们将使用内置的Gradle任务(称为wrapper.**请注意,我们只需要生成一次这些文件。

现在,让我们在项目目录中wrapper

$ gradle wrapper

让我们看一下该命令的输出:

摇篮包装指南

让我们看一下这些文件是什么:

  • gradle-wrapper.jar包含用于下载gradle-wrapper.properties文件中指定的Gradle发行gradle-wrapper.properties
  • gradle-wrapper.properties包含Wrapper运行时属性-最重要的是,与当前项目兼容的Gradle发行版
  • gradlew是使用包装器执行Gradle任务的脚本
  • gradlew.batgradlew等效批处理脚本

默认情况下, wrapper任务会生成包装器文件,该包装器文件具有计算机上当前安装的Gradle版本。如果需要,我们可以指定其他版本:

$ gradle wrapper --gradle-version 6.3

我们建议将Wrapper文件检入到GitHub之类的源代码控制系统中。这样,我们确保其他开发人员无需安装Gradle即可运行项目。

2.2 使用包装器运行Gradle命令

我们可以通过更换运行与包装物的任何任务摇篮gradle**gradlew .**

要列出可用任务,我们可以使用gradlew tasks命令:

$ gradlew tasks

让我们看一下输出:

Help tasks

 ----------

 buildEnvironment - Displays all buildscript dependencies declared in root project 'gradle-wrapper'.

 components - Displays the components produced by root project 'gradle-wrapper'. [incubating]

 dependencies - Displays all dependencies declared in root project 'gradle-wrapper'.

 dependencyInsight - Displays the insight into a specific dependency in root project 'gradle-wrapper'.

 dependentComponents - Displays the dependent components of components in root project 'gradle-wrapper'. [incubating]

 help - Displays a help message.

 model - Displays the configuration model of root project 'gradle-wrapper'. [incubating]

 outgoingVariants - Displays the outgoing variants of root project 'gradle-wrapper'.

 projects - Displays the sub-projects of root project 'gradle-wrapper'.

 properties - Displays the properties of root project 'gradle-wrapper'.

 tasks - Displays the tasks runnable from root project 'gradle-wrapper'.

gradle命令运行此任务时获得的输出相同。

3.常见问题

现在,让我们看看在使用Wrapper时可能会遇到的一些常见问题。

3.1忽略所有jar文件的全局.gitignore

一些组织不允许开发人员将jar文件检入其源代码管理系统。通常,此类项目在全局.gitignore文件中具有一条规则,以忽略所有jar文件。因此, gradle-wrapper.jar文件未检入git存储库。因此,包装器任务无法在其他计算机上运行。在这种情况下,我们需要将gradle-wrapper.jar文件强制添加到git中

git add -f gradle/wrapper/gradle-wrapper.jar

同样,我们可能有一个特定于项目的.gitignore文件,它忽略了jar文件。我们可以通过放宽.gitignore规则或通过强行添加包装jar文件来修复它,如上所示。

3.2 缺少包装器文件夹

检入基于Wrapper的项目时,我们可能会忘记包括存在于gradle文件夹中wrapper但是正如我们在上面看到的, wrapper文件夹包含两个关键文件: gradle-wrapper.jargradle-wrapper.properties.

如果没有这些文件,则在使用包装程序运行Gradle任务时会出现错误。因此,我们必须将wrapper文件夹检入到源代码管理系统中

3.3 删除包装文件

基于Gradle的项目包含一个.gradle文件夹,用于存储缓存以加快Gradle任务的速度。有时,我们需要清除缓存以对Gradle构建问题进行故障排除。通常,我们删除整个.gradle文件夹。但是,我们可能会将Wrapper gradle文件夹与*.gradle文件夹搞混,*然后将其删除。之后,在尝试使用包装程序运行Gradle任务时,我们肯定会遇到问题。

我们可以通过从源头获取最新更改来解决此问题。或者,我们可以重新生成包装器文件。

4.结论

在本教程中,我们了解了Gradle Wrapper及其基本用法。我们还了解了在使用Gradle Wrapper时可能会遇到的一些常见问题。

标签:

0 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *