gradle学习心得1 gradle wrapper

143 阅读2分钟

gradle wrapper

gradle wrapper涉及到的文件主要有如下一些.

demo

├── gradle

│ └── wrapper

│ ├── gradle-wrapper.jar

│ └── gradle-wrapper.properties

├── gradlew

├── gradlew.bat

使用命令创建

  • 第一种,不指定参数,默认是最新版gradle版本

gradle wrapper

> Task :wrapper

  • 第二种,指定参数

$ gradle wrapper --gradle-version 7.5 --distribution-type all

> Task :wrapper

BUILD SUCCESSFUL in 0s

1 actionable task: 1 executed

--gradle-version 用于指定下载和执行Wrapper的Gradle版本。

--distribution-type 用于指定采用的Gradle分发包类型, Gradle分发包分为两种类型bin和all, 并包含了必要binary文件, 包体积更小一些, all 不仅包含binary文件, 还包含了documents和source code文件。可用选项为bin和all。默认值为bin。

--gradle-distribution-url

由于执行以上命令需要到远程服务器去下载Gradle分发包, 由于众所周知的原因, 可能会出现超时的情况. 此时可以使用另外选项 --gradle-distribution-url来指定gradle分发包的位置.

文件介绍

gradle-wrapper.properties

主要提供gradle wrapper运行时需要的一些参数, 比如去哪里下载分发包, 是否需要代理, 代理配置等信息. gradle wrapper执行的环境千差万别, 依赖此配置文件, gradle wrapper就能在任何环境下, 完成它的任务和使命.


#Mon Feb 27 14:12:04 CST 2023

distributionBase=GRADLE_USER_HOME

distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip //项目中的gradle版本

distributionPath=wrapper/dists

zipStorePath=wrapper/dists

zipStoreBase=GRADLE_USER_HOME

gradlew和gradlew.bat

用于使用Wrapper执行构建的shell脚本和Windows批处理脚本。简单来说gradlew 是在Linux 或者Unix, Unix like环境也可以在git bash, cygwin下执行的gradle wrapper命令, 而gradlew.bat是在windows dos上执行的gradle wrapper命令.

gradle-wrapper.jar

Wrapper JAR文件包含用于下载Gradle分发的代码。有人可能会问在执行gradle wrapper时不是已经下载过gradle分发包了吗, 为什么这里还需要gradle-wrapper.jar, 这主要是方便, 将项目源码分析给项目成员时使用的, 当我们共享项目或将项目纳入source control时, 是不会共享gradle分发包的, 当成员拿到源代码时, 就依赖这个jar文件去相应位置下载gradle分发包. 或者当我们的环境完全的destroy, 我们要重建项目, 也需要使用这个文件, 而不需要将构建gradle环境再执行一遍.