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

Android 什么是gradle包装器和gradlew.bat文件?,android,performance,android-studio,gradle,android-gradle-plugin,Android,Performance,Android Studio,Gradle,Android Gradle Plugin,最近我开始了解Gradle作为一个构建系统的力量,作为一个Android开发人员,我想深入了解它 一篇文章说:- “您可以使用Gradle wrapper命令行工具执行Android项目可用的所有构建任务。它可以作为Windows的批处理文件(gradlew.bat)和Linux和Mac的shell脚本(gradlew.sh)使用,并且可以从使用Android Studio创建的每个项目的根目录访问。” 要使用包装器运行任务,请使用以下命令之一: 在Windows上: gradlew任务名称 现

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

一篇文章说:-

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

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

在Windows上: gradlew任务名称

现在我有一些疑问如下:-

  • 什么是Gradle Wrapper和gradlew.bat
  • 如果我已经安装了Android studio,并且它正在使用gradle来构建我的应用程序(因此gradle已经安装在我的系统中),那么,在这种情况下,我是否仍然需要从命令行安装gradle来构建应用程序,就像我在命令行上编写任何类似gradle、gradlew的命令一样,我得到的错误是,gradlew不被识别为内部或外部命令(其他命令也有同样的错误)。我可能在错误的路径上使用它,请帮助我在什么路径上使用gradle相关命令
  • 如果我需要下载并安装它,我如何以及在哪里可以找到该文件?其他过程呢 我用的是Windows机器

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

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

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


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

    在评论后编辑。

    Gradle是一个构建系统

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

    gradlew.bat
    -它是一种在Windows上使用的工具。您甚至可以用记事本打开它来查看其中的说明。批处理文件类似于写入要执行的文件中的“命令”。您可以使用它(对于Windows)执行生成命令。它还检查是否安装了gradle。如果不是,它会下载并安装它

    示例:要在Windows上构建android应用程序:

    • 打开命令提示符
    • 导航到项目的根目录
    • 执行
      gradlew.bat assembleDebug
    它启动包装器,检查Gradle是否安装在那里,然后 执行所有“gradle-specific”命令以生成项目

    您需要安装Gradle吗?


    事实上,没有。这是格拉德鲁脚本的工作来检查这一点。如果gradle尚未安装,它将自动下载并用于所有后续版本。

    gradle包装器是gradle版本系统的可选部分。它由您签入版本控制系统的四个文件组成。Unix启动脚本
    /gradlew
    /gradlew.bat
    Windows启动脚本,
    /gradle/wrapper/gradle wrapper.jar
    ,其中包含包装器的类文件,并由启动脚本和包含包装器某些配置的
    /gradle/wrapper/gradle wrapper.properties
    启动,例如,用于构建项目的Gradle版本

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

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

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

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

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