Gradle: Gradle Wrapper
【Gradle 安装】
安装完毕后,记得设置一下环境变量。
Environment Variables:
GRADLE_HOME=D:\Program Files\Gadle\gradle-4.7
Path=%GRADLE_HOME%\bin
【Gradle Wrapper】
gradlew的本质是 gradle 命令的一个wrapper,也就是在gradle的基础上添加了一些额外功能具体来说就是自动下载。
wrapper执行流程:
1)根据gradle-wrapper.properties 的配置检查是否需要安装gradle
2)如果本地的gradle经过checksum验证通过,则不需要下载gradle,否则下载并安装gradle到某个目录
3)安装完毕,开始执行 tasks
gradle-wrapper.properties配置说明:
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.7-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
默认配置如上,意思是说,从distributionUrl 下载gradle-4.7-bin.zip存放到 zipStoreBase + zipStorePath 目录下,然后安装到 distributionBase + distributionPath 目录下。
distributionBase, zipStoreBase 都可以取两个值:GRADLE_USER_HOME 或者 PROJECT
如果取值为PROJECT,则计算路径是 基于project目录来计算。
如果取值为GRADLE_USER_HOME,则计算路径是基于 用户的 home目录来计算的。
也就是说对于windows操作系统,默认基于 c:\users\<user_home>\.gradle
对于linux 系统,默认基于 $USER_HOME\.gradle 来计算
查看了gradle-wrapper.jar的源码,可以知道,当设置为GRADLE_USER_HOME时,会有一个搜索
Gradle home的过程:
1) -g 参数
2)java系统属性: -Dgradle.user.home
3) 环境变量:GRADLE_USER_HOME
4)用户 home 目录 (默认值)
private static File gradleUserHome(final ParsedCommandLine options) {
if (options.hasOption("g")) {
return new File(options.option("g").getValue());
}
return GradleUserHomeLookup.gradleUserHome();
}
public class GradleUserHomeLookup
{
public static final String DEFAULT_GRADLE_USER_HOME;
public static final String GRADLE_USER_HOME_PROPERTY_KEY = "gradle.user.home";
public static final String GRADLE_USER_HOME_ENV_KEY = "GRADLE_USER_HOME";
public static File gradleUserHome() {
String gradleUserHome;
if ((gradleUserHome = System.getProperty("gradle.user.home")) != null) {
return new File(gradleUserHome);
}
if ((gradleUserHome = System.getenv("GRADLE_USER_HOME")) != null) {
return new File(gradleUserHome);
}
return new File(GradleUserHomeLookup.DEFAULT_GRADLE_USER_HOME);
}
static {
DEFAULT_GRADLE_USER_HOME = System.getProperty("user.home") + "/.gradle";
}
}
如果想要使用你已经安装的gradle,怎么办呢?
这个在使用gradle-wrapper时是行不通的,除非你不使用gradle-wrapper来构建
如何使用已经离线的下载的zip安装包呢?
修改gradle-wrapper.properties中配置项为本地URL即可。
例如我之前通过在线方式安装了gradle-4.7-bin.zip,
我拿到该zip文件,copy一份放到D盘,修改名称为:gradle-4.7-bin-test.zip,
然后修改gradle-wrapper.properties中配置项为:distributionUrl=file\:///d:/gradle-4.7-bin-test.zip
然后使用gradlew 执行一个task,就自动安装好了。
Gradle: Gradle Wrapper的更多相关文章
- Gradle | Gradle项目无法导入依赖包
Gradle | Gradle项目无法导入依赖包 背景 今天使用idea导入一个Gradle项目,使用 gradle build构建成功,但是项目还是无法正常导入依赖包,显示错误如下: 解决方案 后来 ...
- gradle/gradle plugin/Android studio关系
gradle - 构建工具,存储于Users/stono/.gradle/wrapper/dists Adroid Studio- IDE Gradle plugin - 在AS中使用Gradle的插 ...
- build.gradle & gradle.properties
一.build.gradle buildscript { ext { springBootVersion = '1.5.9.RELEASE' } repositories { maven { cred ...
- [Gradle] Gradle 构建 android 应用常见问题解决指南
转载地址:http://www.cnblogs.com/youxilua/p/3348162.html 1: 使用最新的gradle android插件 以前我们写的时候会这么写 dependenci ...
- [Gradle] Gradle 构建工具的未来
转载地址:http://www.infoq.com/cn/news/2011/04/xxb-maven-6-gradle Maven面临的挑战 软件行业新旧交替的速度之快往往令人咂舌,不用多少时间,你 ...
- [Gradle] Gradle 简介
Gradle 是以 Groovy 语言为基础,面向Java应用为主.基于DSL(领域特定语言)语法的自动化构建工具. Ø gradle对多工程的构建支持很出色,工程依赖是gradle的第一公民. Ø ...
- Could not find or load main class org.gradle.wrapper.GradleWrapperMain解决办法
解决办法: gradlew is the gradle wrapper executable - batch script on windows and shell script elsewhere. ...
- Chapter 5. The Gradle Wrapper 关于gradle wrapper
Most tools require installation on your computer before you can use them. If the installation is eas ...
- gradle wrapper 简单使用
其实就是对于gradle 的一个包装,保证了项目版本的一致,同时减少配置 1. 生成wrapper // 使用gradle wrapper 命令 gradle wrapper 输出效果如下: [r ...
随机推荐
- MySQL中间件之ProxySQL(10):读写分离方法论
返回ProxySQL系列文章:http://www.cnblogs.com/f-ck-need-u/p/7586194.html 1.不同类型的读写分离 数据库中间件最基本的功能就是实现读写分离,Pr ...
- Perl输出复杂数据结构:Data::Dumper,Data::Dump,Data::Printer
输出复杂结构 Data::Dumper.Data::Dump.Data::Printer都可以用来输出复杂的数据结构.本文只介绍简单的几个输出形式,以后再需要的地方再详细介绍. 前两者建议传递数据结构 ...
- IPv6笔记
单播地址包含的几种类型:1.AGUA地址:2000::到3FFF:FFFF:FFFF:FFFF:FFFF..... 一个接口可以拥有若干个AGUA地址2.Link-Local 地址:FE80::/10 ...
- maven创建一个简单的web项目
1.确认maven插件和配置在eclipse中已经完成 如果没完成,可参考这篇博客:http://www.cnblogs.com/mmzs/p/8191979.html 2.在eclipse中用mav ...
- python下载安装BeautifulSoup库
python下载安装BeautifulSoup库 1.下载https://www.crummy.com/software/BeautifulSoup/bs4/download/4.5/ 2.解压到解压 ...
- Python图像处理之图片文字识别(OCR)
OCR与Tesseract介绍 将图片翻译成文字一般被称为光学文字识别(Optical Character Recognition,OCR).可以实现OCR 的底层库并不多,目前很多库都是使用共同 ...
- PHP学习笔记(3)-Zend Studio安装和汉化
下载 因为FQ也慢,所以还是在百度软件中心下载快一些.地址:http://rj.baidu.com/soft/detail/15423.html?ald 因为下载不是最新版本,虽然因为强迫症FQ在官网 ...
- oracle表空间大小的限制和DB_BLOCK_SIZE的概念
之前接触的项目表空间最大也不超过10G,所以导入数据库时一直使用导入本地的oracle数据库文件的方法,即根据dmp文件大小设置一个数据文件,设定表空间最大值. --创建表空间,数据文件为'F:\ap ...
- Core知识整理
概述 Commond-Line ASP.NET结构文件 Startup 配置文件 中间件和依赖注入 依赖注入原理 框架自带的依赖注入(IServiceCollection) 依赖注入生命周期 依赖注入 ...
- [Linux] LVS虚拟服务器四层负载均衡
随着互联网的爆炸性增长及其在我们生活中日益重要的作用,互联网上的流量急剧增加,并且每年以超过100%的速度增长.服务器上的工作负载正在迅速增加,因此服务器很容易在短时间内过载,尤其是对于流行的网站.为 ...