Gradle Wrapper

587 阅读2分钟

Wrapper

Wrapper是Gradle相对于其他构建工具来说比较有特别的特性。对于Gradle本身来说他是一个用来编译、打包、测试、进行依赖管理的构建工具。而Wrapper则是让Gradle加锦上添花,顾名思义它就是一个包装器。它可以在没有安装Gradle或者安装了与项目构建时版本不一致的Gradle的计算机上。我们可以不必关系Gradle版本不一致的问题,同时可以简化Gradle本身的安装部署。

Wrapper实战

命令行下构建

  1. 首先初始化一个项目

    .
    ├── 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相关的文件:

    1. gradlew 和 gradlew.bat分别是在Linux系统和Windows系统下使用wrapper构建系统的执行脚本。执行该脚本会根据gradle-wrapper.properties检查对应配置的gradle信息,如果本地没有安装对应版本的gradle则会根据改配置文件上的url地址下载指定gradle文件,而且依赖地址以及gradle压缩包保存地址都在该文件中配置。

    2.  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保存的具体目录
      
    3. gradle-wrapper.jar 则是gradlew运行时依赖的jar包

  2. 当然我们还是可以使用指定的版本进行wrapper构建。gradle wrapper --gradle-version (任意版本号)在项目目录中使用此命令会将wrapper相关的文件的版本信息覆盖掉。

对于wrapper来说我们在实际应用的时候好像并不常用,了解即可。