Android Gradle 学习笔记(二):Gradle Wrapper
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的更多相关文章
- Android Studio 学习笔记(二):布局简介和xmlns说明
初学Android Studio,是在b站看的教程视频,这里的笔记也是以其为基础的,个人强烈安利: [天哥]Android开发视频教程最新版 Android Studio开发 Android 布局简介 ...
- Android Fragment学习笔记(二)----Fragment界面添加和管理
Fragment界面添加 了解过fragment的生命周期等简单知识,于是去看官方文档来了解更多相关内容,要添加fragment到我们的UI界面中,给出了两种常用的方法,第一个是在activity的布 ...
- Android:日常学习笔记(8)———探究UI开发(5)
Android:日常学习笔记(8)———探究UI开发(5) ListView控件的使用 ListView概述 A view that shows items in a vertically scrol ...
- Android:日常学习笔记(2)——分析第一个Android应用程序
Android:日常学习笔记(2)——分析第一个Android应用程序 Android项目结构 整体目录结构分析 说明: 除了APP目录外,其他目录都是自动生成的.APP目录的下的内容才是我们的工作重 ...
- Android Studio 学习笔记(一)环境搭建、文件目录等相关说明
Android Studio 学习笔记(一)环境搭建.文件目录等相关说明 引入 对APP开发而言,Android和iOS是两大主流开发平台,其中区别在于 Android用java语言,用Android ...
- Android自动化学习笔记之MonkeyRunner:官方介绍和简单实例
---------------------------------------------------------------------------------------------------- ...
- Android自动化学习笔记:编写MonkeyRunner脚本的几种方式
---------------------------------------------------------------------------------------------------- ...
- android开发学习笔记000
使用书籍:<疯狂android讲义>——李刚著,2011年7月出版 虽然现在已2014,可我挑来跳去,还是以这本书开始我的android之旅吧. “疯狂源自梦想,技术成就辉煌.” 让我这个 ...
- Android Animation学习(二) ApiDemos解析:基本Animators使用
Android Animation学习(二) ApiDemos解析:基本Animatiors使用 Animator类提供了创建动画的基本结构,但是一般使用的是它的子类: ValueAnimator.O ...
- Android动画学习笔记-Android Animation
Android动画学习笔记-Android Animation 3.0以前,android支持两种动画模式,tween animation,frame animation,在android3.0中 ...
随机推荐
- iOS开发 - 超级签名实现之描述文件
简介 因为最近企业签掉得太严重了,上头要求实现超级签进行游戏下载.故有了此文章,记录一下过程. 签名原理其实很简单,超级签名的技术就是使用个人开发者账号,将用户的设备当作开发设备进行应用分发.这也导致 ...
- mysql数据库排坑过程
刚安装mysql后想通过navicat来连接mysql,发现报错 1251这个错误,不慌.这个很简单. 首先通过cmd进入mysql. 然后修改密码规则 ALTER USER 'root'@'loca ...
- Android Studio中的AndroidManifest.xml文件分析
一.关于AndroidManifest.xml AndroidManifest.xml清单文件是每个Android程序中必须的文件,它是整个Android程序的全局描述文件,除了能声明程序中的Acti ...
- 求连通块个数 - BFS、DFS、并查集实现
本文基于leetcode的200.岛屿数量(题目
- Java方法之重载
Java方法之重载 本篇探究Java中的方法重载.那么,什么是重载呢?先上一串代码: package com.my.pac06; /** * @author Summerday * @date 201 ...
- 在IIS上部署 .Net Core 3.0 项目踩坑实录
在IIS上部署 .Net Core 3.0 项目的主要流程有: 安装并启用IIS 安装AspNetCoreModuleV2 添加.配置网站 设置应用程序池 通过VS发布 一.安装并启用IIS: 安装了 ...
- java 超详细面经整理(持续更新)2019.12.19
目录 Java SE 请你解释HashMap中为什么重写equals还要重写hashcode? 请你介绍一下map的分类和常见的情况 请你讲讲Java里面的final关键字是怎么用的? 请你谈谈关于S ...
- Java 基础复习 基础数据类型与包装器类型
Java 基础 基础数据类型与包装器类型 基础数据类型 java 中包含哪些基础数据类型,默认值分别是多少? 基础数据类型 byte short int long double float char ...
- JS---DOM---part3课程介绍和part2复习
part3课程介绍 节点 为什么要学节点 节点的操作的相关属性------>作用 12行代码----有用的----熟练的问题, 节点的案例 元素的创建三种方式------重点的内容 为什 ...
- 记录/objc2/object_setClass做了啥
inline Class objc_object::changeIsa(Class newCls) { // This is almost always true but there are // e ...