当前位置: 首页 > 知识库问答 >
问题:

什么是gradle包装器和gradlew。bat文件?

缪成天
2023-03-14

最近,我开始了解Gradle作为构建系统的力量,作为一名Android开发人员,我想深入了解它。

一篇文章说:

您可以使用Gradle包装器命令行工具执行Android项目可用的所有构建任务。它可以作为Windows的批处理文件(gradlew.bat)和Linux和Mac的shell脚本(gradlew.sh),并且可以从使用Android Studio创建的每个项目的根目录访问。

要使用包装器运行任务,请使用以下命令之一:

  • On Windows:
    gradlew task-name
    

    现在我有一些疑问如下:

    1. 什么是Gradle Wrapper和gradlew.bat
    2. 如果我安装了Android Studio并且它正在使用gradle来构建我的应用程序(因此gradle已经安装在我的系统上),我是否仍然需要从命令行安装gradle以用于构建目的?当我在命令行上编写任何像gradlegradlew这样的推荐时,我收到错误消息说gradlew不被识别为内部或外部命令(其他命令相同的错误)。我可能在错误的路径上使用它,请帮助我在什么路径上需要使用Gradle相关命令?
    3. 如果我需要下载并安装它,如何以及在哪里可以找到该文件?以及其他进程?

    我正在使用Windows计算机进行此操作。


共有3个答案

宗晟
2023-03-14

>

  • 格拉德勒。bat是Gradle包装器(对于本例中的Windows)。Gradle包装器只是一个小实用程序,它将确保安装了Gradle(或在必要时安装它),以便您始终可以构建项目。Gradle本身允许您管理项目的依赖项和构建配置。

    如果您已经安装了Android Studio,那么您已经安装了Gradle,并且可以继续使用。(从技术上讲,每个项目都有自己的包装器来处理Gradle的安装/使用)

    正如我上面提到的,你可以走了。

    最终,Gradle是一个用于构建项目的命令行工具,您可以直接使用它(尽管您不必这么做),因为它正是Android Studio用于构建项目的工具。

  • 唐星晖
    2023-03-14

    评论后编辑

    Gradle是一个构建系统。

    这个gradle包装器是构建Android项目的主要接口。它是Gradle构建系统的一部分,并对Gradle是否已安装进行一些初步检查。

    gradlew.bat-它是Windows上使用的批处理文件。您甚至可以用记事本打开它以查看其中的指令。批处理文件就像写在要执行的文件中的“命令”。您使用它(在Windows的情况下)来执行构建命令。它还检查是否安装了gradle。如果没有,它会下载并安装它。

    示例:要在Windows上构建android应用程序,请执行以下操作:

    • 打开命令提示符

    它启动包装器,检查Gradle是否安装在那里,并执行所有“gradle特定”命令来构建您的项目。

    您需要安装Gradle吗?

    实际上,没有。这个gradlew脚本的工作是检查它。如果gradle还没有,它会自动下载它并将其用于以后的所有构建。

    颜君浩
    2023-03-14

    Gradle包装器是Gradle构建系统的可选部分。它由您签入版本控制系统的四个文件组成。Unix启动脚本

    在我看来,每个Gradle项目,即使是最小的项目,都应该使用Gradle包装器。

    Gradle包装器确保您的构建始终使用相同的Gradle版本运行,无论谁执行构建以及Gradle是否安装在哪里,只要使用Gradle包装器来构建项目。这意味着您可以为该Gradle版本设计构建,并确保构建不会失败,因为有人正在使用不同版本的Gradle,因此也是构建再现性的重要步骤。

    此外,希望构建您的项目的人只需要安装Java即可。他不需要安装任何Gradle版本。实际上,任何已安装的Gradle版本都会被忽略。Gradle包装器检查是否在中。gradle//code>构建所需的版本已经存在,因为任何项目的gradle包装器已经将其放在那里了。如果它已经存在,则会使用它,否则会自动下载。

    如果在命令行中键入gradlew,但找不到该命令,则意味着您没有将根项目路径放置到path环境变量中(我也不建议这样做),您当前不在根项目目录中。要运行Gradle构建,您必须在项目中的任何地方调用Gradle或Gradle包装器。但就像任何不在路径上的可执行文件一样,您当然必须提供其路径。因此,如果您在根项目目录中,只需执行gradlew。如果您在<代码>

    Gradle包装文件由隐式可用的Gradle任务包装器生成,然后签入相关项目的VCS。如果项目中没有这四个文件,那么它就不使用Gradle包装器,您应该向项目发布改进请求以添加它。

    如果某些项目不使用Gradle包装器,而是使用Gradle构建,则可以安装Gradle并使用Gradle而不是gradlew,或者甚至可以调用磁盘上任何其他可用项目的Gradle包装器。然后,构建将使用包装器或Gradle安装所使用的Gradle版本运行,因此可能不会按预期运行,这就是为什么如果每个项目都使用Gradle,那么每个项目都应该使用包装器。

     类似资料:
    • 最近,我开始了解Gradle作为构建系统的强大功能,作为一名Android开发人员,我想深入了解它。 一篇文章说:- “您可以使用Gradle wrapper命令行工具执行您的Android项目可用的所有构建任务。它可以作为Windows的批处理文件(gradlew.bat)和Linux和Mac的shell脚本(gradlew.sh)使用,并且可以从您使用Android Studio创建的每个项目

    • 包装器似乎是作为“配置项目”阶段的一部分自动执行的,如果是这样的话,它似乎是一种“更干净”的管理方式(即,要处理的文件更少,嵌入到实际的gradle构建脚本中,等等)。 对格雷德尔来说是新手,只是想弄清楚... 加... 活到老学到老,感谢您解答这个问题。

    • 你把你的Web应用给你的同伴Mike看,他看完之后觉得很有意思想加入你给项目添加一些高级特性。你把代码添加到版本控制系统当中(VCS),因此它可以下载代码,由于Mike从来没有用过Gradle构建工具,所以他问你用的哪个版本的Gradle以及怎么安装Gradle,他也不知道怎么去配置Gradle,从以往的经验来看,Mike清醒的知道不同版本的构建工具或者运行环境对对构建的影响有多大。对于在一个机器

    • 来自Gradle的文档: 此任务生成的脚本将提交给您的版本控制系统。该任务还生成一个小的gradle-wrapper.JAR引导程序JAR文件和属性文件,这些文件也应该提交给VCS。脚本委托给这个jar。 来自:什么不应该受到源头控制?

    • gradle-wrapper.properties 是gradle wrapper的配置文件. 默认的gradle-wrapper.properties文件内容如下: #Mon Dec 28 10:00:20 PST 2015 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADL

    • 问题内容: 我最近遇到了一个扩展名为.pid的文件,并在其中进行了探索,但没有发现太多。该文件说: Pid-File是一个包含进程标识号(pid)的文件,该文件存储在文件系统定义明确的位置,因此允许其他程序找出正在运行的脚本的pid。 任何人都可以对此进行更多说明,或指导我了解pid文件中包含的内容的详细信息吗? 问题答案: pid文件包含给定程序的进程ID(数字)。例如,Apache HTTPD