gralde使用与配置

gradle

简介的概述:

Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。

面向Java应用为主。当前其支持的语言限于Java、Groovy、Kotlin和Scala,计划未来将支持更多的语言。

以上来自百度百科知识,对于我们来说只要知道他是一个自动构建工具和依赖管理工具就行了。

她的特点:

◉一个像 Ant 一样的灵活的构建工具

◉一种可切换的, 像 maven 一样的基于合约构建的框架

◉支持强大的多工程构建

◉支持强大的依赖管理(基于 ApacheIvy )

◉支持已有的 maven 和 ivy 仓库

◉支持传递性依赖管理, 而不需要远程仓库或者 pom.xml 或者 ivy 配置文件

◉优先支持 Ant 式的任务和构建

◉基于 groovy 的构建脚本

◉有丰富的领域模型来描述你的构建

让我们看看她提供了哪些服务:

1.一种可切换的,像maven一样的基于约定的构建框架,却又从不锁住你(约定优于配置)

2. 强大的支持多工程的构建

3. 强大的依赖管理(基于Apache Ivy),提供最大的便利去构建你的工程

4. 全力支持已有的Maven或者Ivy仓库基础建设

5. 支持传递性依赖管理,在不需要远程仓库和pom.xml和ivy配置文件的前提下

6 基于groovy脚本构建,其build脚本使用groovy语言编写

7 具有广泛的领域模型支持你的构建

使用方法:

1、新建环境变量 GRADLE_HOME,即 D:\usr\local\gradle-2.4;

2、修改环境变量 Path,即追加 %GRADLE_HOME%\BIN;

3、输入快捷键 WIN+ R,输入 cmd,在弹出的窗口输入命令行: gradle -v;

1、创建工程所在目录,本经验创建于 c:\gdemo;

创建空白的 build.gradle 文件,并打开;

2、在第一行输入 apply plugin: ‘java’,并执行命令:gradle build。

就可以执行Task任务了;

在android项目中优化的配置:

1.国内可能有些库下载的慢或者请求超时。

那么我们可以配置国内提供的一些仓库,比如aliyun的。

maven {url 'https://plugins.gradle.org/m2/' }

maven {url 'http://maven.aliyun.com/nexus/content/repositories/google' }

maven {url 'http://maven.aliyun.com/nexus/content/groups/public/' }

maven {url 'http://maven.aliyun.com/nexus/content/repositories/jcenter' }

maven {url "https://raw.githubusercontent.com/HyphenateInc/Hyphenate-SDK-Android/master/repository" }

如下,我们可以这样配置:

gradle依赖包下载仓库

2. 如果项目中有多个model,有引用同一个版本号仓库,和同一个版本号的编译管理器,那么我们可以配置一个全局的版本号。

如下:

全局版本号

3. 如果想知道build后,执行task任务执行到哪里了,可以用打印日志形式:


自定义打印

想监听具体的task让任务,可以看这里 链接

4. 可以控制项目日志输出状态(发布时需要关闭):

// 控制日志Log 输出打印 

 buildConfigField("boolean", "enableLog", "true")

如下:


控制日志输出

项目中就判断BuildConfig.enableLog 这个静态变量是否为true;

5.dependencies依赖管理:


依赖关系

我们可以看到现在有上面的scope几种情况;

api:是对所有的build type以及favlors都会参与编译并且打包到最终的apk文件中,是从repository(默认是jCenter())里下载一个依赖包进行编译并打包。相当于以前的Compile

implementation:这个编译结果和上面一样,都是最终编译打包到项目中,唯一一点区别就是这个model的dependencies下应用的是私有的,也就是说,当其他的model引用当前的项目,那么dependencies中共同的还要自己引用一下,但google比较推荐这种引用,优先使用implementation,不行了再使用API的scope状态。

CompileOnly:CompileOnly是对所有的build type以及favlors只在编译时使用,类似eclipse中的external-libs,只参与编译,不打包到最终apk,是提供给那些只编译不打包场景的命令。就是我在编译的时候对某一个jar文件有依赖,但是最终打包apk文件时,我不想把这个jar文件放进去,可以用这个命令。

RuntimeOnly:只会打包到apk文件中,而不参与编译,所以不能再代码中直接调用jar中的类或方法,否则在编译时会报错。

Test implementation:仅仅是针对单元测试代码的编译编译以及最终打包测试apk时有效,而对正常的debug或者release apk包不起作用。

Debug implementation:仅仅针对debug模式的编译和最终的debug apk打包。

Release implementation:仅仅针对Release 模式的编译和最终的Release apk打包。

有什么不对的地方,或者的不懂的地方,欢迎评论讨论。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 207,113评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,644评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,340评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,449评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,445评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,166评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,442评论 3 401
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,105评论 0 261
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,601评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,066评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,161评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,792评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,351评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,352评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,584评论 1 261
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,618评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,916评论 2 344

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,601评论 18 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,748评论 6 342
  • 说明 本文主要介绍和Gradle关系密切、相对不容易理解的配置,偏重概念介绍。部分内容是Android特有的(例如...
    jzj1993阅读 15,577评论 1 62
  • 1.介绍 如果你正在查阅build.gradle文件的所有可选项,请点击这里进行查阅:DSL参考 1.1新构建系统...
    Chuckiefan阅读 12,118评论 8 72
  • 文图/焉支闲人 在海边、在朝霞中静静地等待日出。 海浪声声,波涛翻涌。堤岸上行人很少,显得有几分宁静。空气中湿漉漉...
    焉支闲人阅读 654评论 0 14