Wrapper,就是对Gradle的一层包装,便于在团队开发过程中统一Gradle构建的版本。这样大家就可以使用统一的Gradle版本进行构建,避免因为Gradle的版本不统一带来的不必要的问题。

这里我们把Wrapper这块的内容放在第二节的原因为,我们在项目开发中,使用的都是Wrapper这种方式。而不是我们在第一节中讲的那样,自己下载一个压缩包,配置环境的方式。Wrapper在Window下是一个批处理文件,在Linux/Mac下是一个shell脚本。当你使用Wrapper启动Gradle时,Wrapper会检查Gradle有没有被下载和关联,如果没有就会从配置的地址下进行下载并运行构建。这对我们开发者来说是非常友好的,只要执行Wrapper命令,它就能帮你搞定一切。

下面我们来详细讲述一下Wrapper相关的知识。

一、生成Wrapper

Gradle提供了内置的Wrapper task来帮助我们生成Wrapper文件所需的目录文件,在一个项目的目录下输入gradle wrapper即可生成:

生成的文件如下:

gradlew 和 gradlew.bat 分别是 Linux 和 Windows 下的可执行脚本,他们的用法是和Gradle原生命令是一样的,Gradle怎么用,他们就可以怎么用。

gradle-wrapper.jar是具体业务逻辑实现的jar包,gradlew最终还是使用Java执行的这个jar包来执行相关呢的Gradle操作。

Wrapper 配置引申:

gradle wrapper --gradle-version : 用于指定使用的Gradle的版本。

gradle wrapper --gradle-distribution-url :用于指定下载Gradle发行版的url地址。

二、gradle-wrapper.properties 文件说明

gradle-wrapper.properties 是 gradle wrapper 的配置文件,内容如下:

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

下面是相关字段的说明:

  • distributionBase:下载的Gradle压缩包解压后存储的主目录。
  • distributionPath:相对于distributionBase的解压后的Gradle压缩包的路径
  • distributionUrl:Gradle发行版压缩包的下载地址
  • zipStoreBsae:同distributionBase,只不过是存放zip压缩包的
  • zipStorePath:同distributionPath,只不过是存放zip压缩包的

在这些字段中,比较重要的字段就是distributionUrl,此字段是下载Gradle的路径,决定了依赖的Gradle版本,如果运行./gradlew的时候一直卡的不动,可能是网络访问不通。一般的解决思路为:翻墙 or 更换其他镜像地址。

Android Gradle 学习笔记(二):Gradle Wrapper的更多相关文章

  1. Android Studio 学习笔记(二):布局简介和xmlns说明

    初学Android Studio,是在b站看的教程视频,这里的笔记也是以其为基础的,个人强烈安利: [天哥]Android开发视频教程最新版 Android Studio开发 Android 布局简介 ...

  2. Android Fragment学习笔记(二)----Fragment界面添加和管理

    Fragment界面添加 了解过fragment的生命周期等简单知识,于是去看官方文档来了解更多相关内容,要添加fragment到我们的UI界面中,给出了两种常用的方法,第一个是在activity的布 ...

  3. Android:日常学习笔记(8)———探究UI开发(5)

    Android:日常学习笔记(8)———探究UI开发(5) ListView控件的使用 ListView概述 A view that shows items in a vertically scrol ...

  4. Android:日常学习笔记(2)——分析第一个Android应用程序

    Android:日常学习笔记(2)——分析第一个Android应用程序 Android项目结构 整体目录结构分析 说明: 除了APP目录外,其他目录都是自动生成的.APP目录的下的内容才是我们的工作重 ...

  5. Android Studio 学习笔记(一)环境搭建、文件目录等相关说明

    Android Studio 学习笔记(一)环境搭建.文件目录等相关说明 引入 对APP开发而言,Android和iOS是两大主流开发平台,其中区别在于 Android用java语言,用Android ...

  6. Android自动化学习笔记之MonkeyRunner:官方介绍和简单实例

    ---------------------------------------------------------------------------------------------------- ...

  7. Android自动化学习笔记:编写MonkeyRunner脚本的几种方式

    ---------------------------------------------------------------------------------------------------- ...

  8. android开发学习笔记000

    使用书籍:<疯狂android讲义>——李刚著,2011年7月出版 虽然现在已2014,可我挑来跳去,还是以这本书开始我的android之旅吧. “疯狂源自梦想,技术成就辉煌.” 让我这个 ...

  9. Android Animation学习(二) ApiDemos解析:基本Animators使用

    Android Animation学习(二) ApiDemos解析:基本Animatiors使用 Animator类提供了创建动画的基本结构,但是一般使用的是它的子类: ValueAnimator.O ...

  10. Android动画学习笔记-Android Animation

    Android动画学习笔记-Android Animation   3.0以前,android支持两种动画模式,tween animation,frame animation,在android3.0中 ...

随机推荐

  1. iOS开发 - 超级签名实现之描述文件

    简介 因为最近企业签掉得太严重了,上头要求实现超级签进行游戏下载.故有了此文章,记录一下过程. 签名原理其实很简单,超级签名的技术就是使用个人开发者账号,将用户的设备当作开发设备进行应用分发.这也导致 ...

  2. mysql数据库排坑过程

    刚安装mysql后想通过navicat来连接mysql,发现报错 1251这个错误,不慌.这个很简单. 首先通过cmd进入mysql. 然后修改密码规则 ALTER USER 'root'@'loca ...

  3. Android Studio中的AndroidManifest.xml文件分析

    一.关于AndroidManifest.xml AndroidManifest.xml清单文件是每个Android程序中必须的文件,它是整个Android程序的全局描述文件,除了能声明程序中的Acti ...

  4. 求连通块个数 - BFS、DFS、并查集实现

    本文基于leetcode的200.岛屿数量(题目

  5. Java方法之重载

    Java方法之重载 本篇探究Java中的方法重载.那么,什么是重载呢?先上一串代码: package com.my.pac06; /** * @author Summerday * @date 201 ...

  6. 在IIS上部署 .Net Core 3.0 项目踩坑实录

    在IIS上部署 .Net Core 3.0 项目的主要流程有: 安装并启用IIS 安装AspNetCoreModuleV2 添加.配置网站 设置应用程序池 通过VS发布 一.安装并启用IIS: 安装了 ...

  7. java 超详细面经整理(持续更新)2019.12.19

    目录 Java SE 请你解释HashMap中为什么重写equals还要重写hashcode? 请你介绍一下map的分类和常见的情况 请你讲讲Java里面的final关键字是怎么用的? 请你谈谈关于S ...

  8. Java 基础复习 基础数据类型与包装器类型

    Java 基础 基础数据类型与包装器类型 基础数据类型 java 中包含哪些基础数据类型,默认值分别是多少? 基础数据类型 byte short int long double float char ...

  9. JS---DOM---part3课程介绍和part2复习

    part3课程介绍   节点 为什么要学节点 节点的操作的相关属性------>作用 12行代码----有用的----熟练的问题, 节点的案例   元素的创建三种方式------重点的内容 为什 ...

  10. 记录/objc2/object_setClass做了啥

    inline Class objc_object::changeIsa(Class newCls) { // This is almost always true but there are // e ...