Wrapper
Wrapper是Gradle相对于其他构建工具来说比较有特别的特性。对于Gradle本身来说他是一个用来编译、打包、测试、进行依赖管理的构建工具。而Wrapper则是让Gradle加锦上添花,顾名思义它就是一个包装器。它可以在没有安装Gradle或者安装了与项目构建时版本不一致的Gradle的计算机上。我们可以不必关系Gradle版本不一致的问题,同时可以简化Gradle本身的安装部署。
Wrapper实战
命令行下构建
-
首先初始化一个项目
. ├── build.gradle ├── gradle │ └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── settings.gradle └── src ├── main │ ├── java │ │ └── gradle │ │ └── test │ │ └── App.java │ └── resources └── test ├── java │ └── gradle │ └── test │ └── AppTest.java └── resources由于使用init初始化构建项目会默认使用wrapper进行构建,对应的版本则是本地安装的Gradle版本。我们可以看到项目中与wrapper相关的文件:
-
gradlew 和 gradlew.bat分别是在Linux系统和Windows系统下使用wrapper构建系统的执行脚本。执行该脚本会根据gradle-wrapper.properties检查对应配置的gradle信息,如果本地没有安装对应版本的gradle则会根据改配置文件上的url地址下载指定gradle文件,而且依赖地址以及gradle压缩包保存地址都在该文件中配置。
-
distributionBase=GRADLE_USER_HOME # 依赖保存位置 distributionPath=wrapper/dists # 依赖保存的具体目录 distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-bin.zip # gradle下载url zipStoreBase=GRADLE_USER_HOME # 下载下来的gradle保存位置 zipStorePath=wrapper/dists # 下载下来的gradle保存的具体目录 -
gradle-wrapper.jar 则是gradlew运行时依赖的jar包
-
-
当然我们还是可以使用指定的版本进行wrapper构建。gradle wrapper --gradle-version (任意版本号)在项目目录中使用此命令会将wrapper相关的文件的版本信息覆盖掉。
对于wrapper来说我们在实际应用的时候好像并不常用,了解即可。