到目前为止,Gradle已经出到2.1版本了,从1.12这个版本开始看,主要是因为我使用Gradle是Android开发所需要。公司里面是采用Android Studio来进行Android项目的开发的,而公司里普遍用的还是Android Studio的0.8.4及其之前的版本,暂时还不能更新到2.0或更新的版本。另外,Gradle1.12是Gradle 1.x的最后一个版本,也是我用的时间最久的一个版本。也许是这种情结再加上前面的原因吧,让我觉得有必要从Gradle 1.12开始吧。

这篇文章对Gradle 1.12的更新先做个简要的介绍,包含但不涵盖所有更新的内容。后续文章会详细介绍Gradle的具体功能使用。当然,用的是1.12的版本。对于Gradle 2.0及之后的版本增删的内容再在后续补充。

Gradle 1.12的更新的内容

1.Gradle是通过Tooling API与IDE进行整合的。在这一版本当中,对Tooling API进行了一些优化,所以导入Gradle项目会变得更快。

2,对用它构建C项目的人来说,这是个好消息。在1.12当中改进了Clang与Visual Studio的整合,并且通过CUnit提供了对此原生代码的支持。Clang的更新还有其他内容,由于我的重点是Android项目,对此不作其他描述,如果有兴趣,可以去看用户手册里Clang的章节。

3.在依赖管理方面也进行了改进,可以通过组合的元数据规则,定义某个版本是否为像Maven的SNAPSHOT一样的版本。比如以下代码:
dependencies {
    components {
        eachComponent { ComponentMetadataDetails details ->
            details.changing =
                details.id.group == "my.company" &&
                    details.id.version.endsWith("-dev")
        }
    }
}

它就会认为group为"my.company"并且版本号以"-dev"结束的库都是在不断更新的。这样在进行构建的时候,就会再去更新这个库,而不是用着旧的缓存了。


4.对跳过的测试,在生成的测试报告中,有了特定的标签来标志。

5.支持构建超出zip标准格式的大zip文件。在以前的版本当中,会生成一个无效的zip文件,不过这个版本开始,可以通过设置zip64属性为true来生成大的zip文件。如果没有设置,而zip的文件大小或文件数量超出限制,则会构建失败。

6.默认使用pom配置。这一版本完全遵从POM文件定义的依赖管理等属性信息。
7.对JVM的Test和JavaExec进程,通过加上 --debug-jvm参数来进行调试。这个参数会使JVM以debug模式启动,以方便调试。
8.现在graddle-wrapper用HTTPS协议进行下载。gradle wrapper可以看作是对gradle的封装,它可以使得在没有安装gradle的电脑上也可以使用Gradle进行构建。可以看下你的项目中的gradlew.bat或gradlew.sh文件吧。

修复的问题

好多,一大堆 。这里略过不谈。

过时的内容

一些内容在1.12版本变为过时的,并且会在2.0版本后将它们移除。所以用Android Studio的朋友,注意你的gradle版本和gradle android插件的版本与你的IDE的版本的对应吧。
另外关于Tooling API版本兼容,这个是做IDE整合的人需要关注的,我们不是做IDE的开发的,这些就不说的。

可能是比较大的改动

1.对Scala增加了增量编译。Scala的编译器Zinc升级到0.3.0版本,对于早期的用户来讲,可能会是一个比较大的修改。当然,这样的用户可能并不多。
2.导入Ant builds时会重新组织依赖顺序。所以从Ant builds导入的任务,从这一版本开始可能执行顺序会和以前的版本不同。
3.对写Gradle插件的人来说,可能需要注意一下,Test.filter和IdeaModule.singleEntryLibraries这两个方法都有了修改。
还有其他改动,由于我对它们提不起多大兴趣,所以略过不谈。具体见:http://www.gradle.org/docs/1.12/release-notes.html。

以上是对这个版本的简要介绍。由于目前的文档大部分都是英文的,博主的英文水平也比较一般,如果有表述或理解得不对的,欢迎在下面指出。最近我也正在努力学习英语和学习翻译,想作出贡献又惟恐误导了别人,在学习和翻译的路人艰难前进,接受大家对于我传达有误的地方的所有批评和指正。

本文原创,转载请保留原文地址http://blog.csdn.net/maosidiaoxian/article/details/40040177,以免我万一误导了别人却没有改正的机会。

Gradle笔记——关于Gradle 1.12的更多相关文章

  1. Gradle笔记——构建基础

    本篇文章主要介绍一下Gradle的构建基础. 它看起来似乎和android项目没多大关系.不能让人一下子理解android项目中的Gradle配置文件,可是这篇基础真的非常重要. 学习Gradle前, ...

  2. 读书笔记--Android Gradle权威指南(上)

    本篇文章已授权微信公众号 dasu_Android(大苏)独家发布 最近看了一本书<Android Gradle 权威指南>,对于 Gradle 理解又更深了,但不想过段时间就又忘光了,所 ...

  3. gradle笔记

    gradle笔记 一.基础知识 1.1.groovy语言 Groovy适用于Java虚拟机的一种敏捷的动态语言,他是一种成熟的面向对象编程语言,既可以用于面向对象编程,又可以用作纯粹的脚本语言,使用该 ...

  4. Android(java)学习笔记127:Android Studio新建工程中的build.gradle、settings.gradle

    随着信息化的快速发展,IT项目变得越来越复杂,通常都是由多个子系统共同协作完成.对于这种多系统.多项目的情况,很多构建工具都已经提供了不错的支持,像maven.ant.Gradle除了借鉴了ant或者 ...

  5. Gradle笔记——依赖管理基础

    1. 什么是依赖管理 依赖管理可以分为两部分:一是依赖,即项目构建或运行时所需要的一些文件:二是发布,即构建完成后上传到某个地方. 1.1 依赖 大部分的项目都需要第三方库类或项目文件,这些文件就是项 ...

  6. 读书笔记--Android Gradle权威指南(下)

    前言 最近看了一本书<Android Gradle 权威指南>,收获挺多,就想着来记录一些读书笔记,方便后续查阅. 本篇内容是基于上一篇:读书笔记--Android Gradle权威指南( ...

  7. Android(java)学习笔记67:Android Studio新建工程中的build.gradle、settings.gradle

    随着信息化的快速发展,IT项目变得越来越复杂,通常都是由多个子系统共同协作完成.对于这种多系统.多项目的情况,很多构建工具都已经提供了不错的支持,像maven.ant.Gradle除了借鉴了ant或者 ...

  8. Gradle笔记系列(二)

    1.使用Gradle命令行 在这篇博客中,我们将简要介绍Gradle命令行的使用. 1.1 执行多任务 通过在命令行列出每个任务(task),你可以在一次构建(build)中执行多个任务.例如,命令g ...

  9. 【项目构建工具】 Gradle笔记2

    一.Gradle执行流程 1.Gradle的执行流程(生命周期)主要是三个阶段: 初始化阶段:解析整个工程中所有Project,构建所有的Project对应的project对象 配置阶段:解析所有的p ...

随机推荐

  1. mybatis下使用log4j打印sql语句和执行结果

    转载自:https://www.cnblogs.com/jeevan/p/3493972.html 本来以为很简单的问题, 结果自己搞了半天还是不行; 然后google, baidu, 搜出来各种方法 ...

  2. 微信小程序适配iphonex

      // 在app.js中判断是否是哪种设备 globalData: { isIphoneX: false, userInfo: null }, onShow:function(){ let that ...

  3. Database Design Guidelines

    Database Design Guidelines Principles Support popular databases Name Style Table Name Style: Pascal ...

  4. 全局变量&局部变量,global&nonlocal

    ###全局变量与局部变量 1.函数内部的变量名如果第一次出现,且出现在=前面,即被视为定义一个局部变量,不管全局域中有没有用到该变量名,函数中使用的将是局部变量 2.函数内部的变量名如果第一次出现,且 ...

  5. 独立游戏《Purgatory Ashes》的经验与总结

    1.引子 游戏的灵感萌生于2015年,当时只有一些概念性的设计图. 后来我利用资源商店的素材搭建了最早的原型. 游戏的最终画面: 早期以D.P作为代号进行开发,来源于两个单词的缩写 Devil Pro ...

  6. C语言关闭日志文件时忘了将日志文件全局变量指针置为NULL

    C语言写了一个write_log函数以写日志,写了一个close_log_file函数以关闭日志,声明了一个日志文件全局变量文件指针plogFile. write_log中首先判断plogFile是否 ...

  7. 含有分类变量(categorical variable)的逻辑回归(logistic regression)中虚拟变量(哑变量,dummy variable)的理解

    版权声明:本文为博主原创文章,博客地址:,欢迎大家相互转载交流. 使用R语言做逻辑回归的时候,当自变量中有分类变量(大于两个)的时候,对于回归模型的结果有一点困惑,搜索相关知识发现不少人也有相同的疑问 ...

  8. CSAPP缓冲区溢出攻击实验(下)

    CSAPP缓冲区溢出攻击实验(下) 3.3 Level 2: 爆竹 实验要求 这一个Level的难度陡然提升,我们要让getbuf()返回到bang()而非test(),并且在执行bang()之前将g ...

  9. linux下数据同步、回写机制分析

    一.前言在linux2.6.32之前,linux下数据同步是基于pdflush线程机制来实现的,在linux2.6.32以上的版本,内核彻底删掉了pdflush机制,改为了基于per-bdi线程来实现 ...

  10. Python 2.7的字典实现简化版(C语言)

    这是一个能自动调整大小的哈希字典,外部接口实现了下列功能. 1.字典级别: 创建字典 dict_new 归零字典 dict_clear 2.键值级别: 查找 dict_search 强制查找 dict ...