Gradle学习(三)——Gradle Wrapper

原创 2017年12月21日 11:21:34

转载请注明出处:http://blog.csdn.net/lastsweetop/article/details/78861595

用Wrapper进行构建

如果你的Gradle项目设置了Wrapper,那么你就需要在root项目中运行以下命令中的一个去执行构建:

  • ./gradlew <task> (Linux或者macOS)
  • gradlew <task> (Windos)

每个Wrapper都绑定了一个版本的Gradle,当你执行第一次执行命令的时候,它就会去下载对应版本的Gradle,然后进行构建。

当你在IDE通过Wrapper导入gradle工程时,IDE会询问你是否导入Gradle的all版本,这会在你编写gradle文件时帮你自动完成代码,并且可以查看内部实现。

这不仅仅意味着你不需要手动下载,而且你可以明确你项目构建的Gradle版本,这使得你的历史构建非常可靠。Wrapper命令行的语法和手动安装的gradle完全一致。

注意,你不能删除Wrapper在项目中自动导入的文件,导入的文件包括如下:

  • gradlew (linux或macOS脚本文件)
  • gradlew.bat (windows脚本文件)
  • gradle/wrapper/gradle-wrapper.jar (wrapper的jar包)
  • gradle/wrapper/gradle-wrapper.properties (wrapper的属性配置文件)

下载的各种版本的gradle都放在了gradle/wrapper/gradle-wrapper.properties目录下

为项目添加wrapper

如果你将wrapper提交到了版本控制服务器,那么下载你代码的任何人就可以完全不需要安装gradle了,而且能保证在当前版本的Gradle下构建是可以正常运转的。当然对于持续集成服务器来说也是非常好的,因为不需要在服务器上做配置。

你可以通过wrapper任务将Wrapper安装到你的项目中,--gradle-version选项可以指定gradle的版本。默认下载的是gradle的最小包-bin包,但是Android Studio和Intellij Idea都会提示你是否安装all包,all包在IDE中可以有更多的提示信息,还可以查看源码。如果命令行下,你可以使用--distribution-type选项来指定bin包还是all包,你还可以通过--gradle-distribution-url直接指定gradle的下载地址。如果版本和URL都没指定,那么wrapper的gradle版本就和你执行gradle命令的版本一致。

gradle wrapper --distribution-type=all命令的输出如下:

BUILD SUCCESSFUL in 2s
1 actionable task: 1 executed

你还可以在build.gradle文件中重新配置wrapper任务,示例如下:

task wrapper(type: Wrapper) {
    gradleVersion '4.0'
    distributionType 'all'
}

在wrapper任务执行后,会在项目目录下生成或者更新一些文件:

.
├── gradle
│   └── wrapper
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradlew
└── gradlew.bat

所有这写文件都应该没提交到版本控制服务器,这些文件添加之后,就应该用gradlew构建项目了,用法了gradle一样。

如果你想改变wrapper对应gradle的版本,你并不需要再次执行wrapper任务,你只需更改一下gradle-wrapper.properties文件即可,但如果在wrapper任务中有其他的操作,那么你就需要重新执行wrapper任务了。

配置

但你使用gradlew运行gradle时,他会首先检查wrapper对应的gradle是否可用,如果可用,他会将gradlew的所有参数委托给gradle,然后执行构建,如果gradle包不可用,它就会首先下载对应版本的gradle,然后再构建。

如果你不想在gradlew命令执行时下载,你可以自己下载gradle包,然后修改gradle-wrapper.properties文件,将url指向到你手动下载到本地的地址,wrapper是支持相对路径的。

版权声明:本文为博主原创文章,未经博主允许不得转载。

gradle wrapper的使用

当我们平时使用gradle来构建项目的时候,可以现在电脑上安装gradle,在配置环境变量之后就能正常使用了 不过当我们把项目分享给一个电脑上没安装gradle的人时,整体的项目构建还需要配置,显得麻...
  • stevejobson
  • stevejobson
  • 2016年12月03日 22:20
  • 5328

gradle与gradle wrapper关系,以及版本关系

转自:http://www.devdiv.com/Android-gradle_gradle_wrapper_-thread-214388-1-1.html gradle-wrapper.p...
  • klx502
  • klx502
  • 2016年02月28日 22:04
  • 8096

Gradle学习笔记 使用Gradle Wrapper

Gradle可以在没有安装Gradle的情况下使用,这时候就需要Gradle Wrapper了。Gradle Wrapper其实就是一个脚本文件,它会在没有安装Gradle的情况下为我们下载Gradl...
  • u011054333
  • u011054333
  • 2017年01月04日 00:00
  • 5900

android导入项目,出现Fix Gradle wrapper and re-import project问题以及相关问题的解决

今天本来想研究下android MVP模式,后来我组长给我发了个压缩过的项目,我解压项目后,在Android Studio导入项目的时候,出现了一下问题(原先我as里面的项目都没有任何问题):   ...
  • a814057962
  • a814057962
  • 2017年03月05日 19:30
  • 1852

多个 gradle 文件夹 \.gradle\wrapper\dists\ 设置gradle不是每次都下载

韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha 设置gradle不是每次都下载 \.gradle\wrapper\dists\ ...
  • yue31313
  • yue31313
  • 2017年08月13日 22:16
  • 193

离线方式配置gradle wrapper

通过 wrapper 方式使用 Gradle 可以提高源代码编译的独立性。在 build.gradle 中添加 task wrapper(type: Wrapper) { gradleVer...
  • hankai945
  • hankai945
  • 2016年10月28日 18:21
  • 3871

Android Studio启动配置gradle遇到的问题

一、 第一次创建Android工程的时候,现配置gradle,但是一般会卡在 Download Gradle directly from http://services.gradle.org/di...
  • zhouzhengting1
  • zhouzhengting1
  • 2015年10月02日 14:47
  • 916

[Gradle中文教程系列]-跟我学Gradle-15:团队协作 - 使用Gradle Wrapper来统一构建版本

概述Gradle Wrapper(Gradle包装器) 作用 - 统一团队gradle版本,解决因团队gradle版本混乱导致构建失败等问题 - 自动下载安装gradle,使gradle...
  • pkaq_
  • pkaq_
  • 2017年05月13日 10:47
  • 500

unzipping/Users/xq/.gradle/wrapper /dists/gradle-3.3-all/55gk2rcmfc6p2dg9u9ohc3hw9/gradle-3.3-all.zi

问题:gradle使用时遇到如下问题 unzipping/Users/xq/.gradle/wrapper /dists/gradle-3.3-all/55gk2rcmfc6p2dg9u9ohc3hw...
  • u014041033
  • u014041033
  • 2017年03月20日 18:34
  • 2252

Gradle Wrapper简述

个人博客:http://www.enjoytoday.cn Gradle更多介绍参考:http://www.enjoytoday.cn/categorys/Gradle 案例源码:GitHubgr...
  • chf1142152101
  • chf1142152101
  • 2017年05月31日 16:48
  • 387
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Gradle学习(三)——Gradle Wrapper
举报原因:
原因补充:

(最多只允许输入30个字)