使用gradlew和gradle之间的区别


Answers:


225

区别在于./gradlew表明您正在使用gradle包装器。包装器通常是项目的一部分,它有助于安装gradle。如果使用不带包装的gradle,则必须手动安装它-例如,在Mac上brew install gradle,然后使用gradle命令调用gradle 。在这两种情况下,您都使用gradle,但是前者更方便,可以确保不同机器之间的版本一致性。

每个包装器都与特定版本的Gradle绑定在一起,因此,当您针对给定的Gradle版本首次运行上述命令之一时,它将下载相应的Gradle发行版并使用其执行构建。

这不仅意味着您不必自己手动安装Gradle,而且还可以确保使用该构建版本专用的Gradle版本。这使您的历史建筑更加可靠

在这里阅读更多-https: //docs.gradle.org/current/userguide/gradle_wrapper.html

此外,Udacity还提供了一个简洁的高水平视频,解释了gradle包装器的概念-https: //www.youtube.com/watch?v= 1aA949H-shk


8
也许我读错了,但对我来说听起来像个危险信号。听起来Gradle不能向后兼容,或者它发展得非常快(不稳定)。无法访问Internet的CI服务器会发生什么?
Impaler

@TheImpaler我想您必须安装Gradle的所有必需版本,就像Wrapper可以访问Internet一样。
罗斯兰

46

gradlew是使用的包装器(w字符)gradle

后台gradlew执行以下三项主要操作:

  • 下载并安装正确的gradle版本
  • 解析参数
  • 呼叫gradle任务

使用Gradle Wrapper,我们可以向每个人分发/共享一个项目,以使用相同的版本和Gradle的功能(编译,构建,安装...),即使尚未安装。

要创建包装运行:

gradle wrapper

该命令生成:

gradle-wrapper.properties 将包含有关Gradle分布的信息

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.