Gradle Wrapper

文章目录

Gradle 推荐使用 Wrapper 的方式来构建工程 Wrapper 根据我的理解,是帮助不同的所有开发同一个项目的人使用相同的 Gradle 版本,从而避免Gradle版本差异带来的问题,而“副作用”就是不同的项目使用相同的 Gradle Wrapper 版本不需要重新下载。

给项目添加 wrapper

一般来说,如果使用的是 IDE(例如Jetbrains IDEA)或 创建的项目都会包含Wrapper,不需要自行添加。 但如果你的项目是命令创建的,或因为其他原因不包含 wrapper 目录,则需要自行添加 通过如下的代码给项目添加 wrapper,一般来说这取决于你的 gradle 版本,使用 gradle -vgradle --version来查看版本

1gradle wrapper 

使用后,会根据你当前的Gradle版本创建wrapper

关于版本控制

在版本控制工具上提交项目代码的时候,一定要把wrapper文件夹包含在内。 通常来说,一个带有wrapper的项目根目录会包含 gradlew 和 gradle.bat 文件,前者是给 linux/macOS 使用的,后者是 windows,使用方式是

1./gradlew xxxx # mac/linux
2gradle.bat xxxx # windows

如果你 clone 的 gradle 项目代码不包含 wrapper 目录,那这个项目的管理者可能不太懂 gradle,很多时候你能跑起他的项目是需要靠运气的,因为不同版本的gradle差异还是存在的。

版本号

一个典型的包含wrapper的项目结构如下

image.png

其中gradle-wrapper.properties文件内会指定了gradle的版本号等信息,一般建议使用对应的all版本,并且,如无特殊情况,新项目建议永远使用当前的最新版

1distributionBase=GRADLE_USER_HOME
2distributionPath=wrapper/dists
3distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip
4zipStoreBase=GRADLE_USER_HOME
5zipStorePath=wrapper/dists
1distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip
2distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-all.zip