到目前为止,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一样的版本。比如以下代码:
  1. dependencies {
  2. components {
  3. eachComponent { ComponentMetadataDetails details ->
  4. details.changing =
  5. details.id.group == "my.company" &&
  6. details.id.version.endsWith("-dev")
  7. }
  8. }
  9. }

它就会认为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. linux下磁盘分区详解 图文(fdisk;mkfs)

    linux分区不同于windows,linux下硬盘设备名为(IDE硬盘为hdx(x为从a-d)因为IDE硬盘最多四个,SCSI,SATA,USB硬盘为sdx(x为a-z)),硬盘主分区最多为4个,不 ...

  2. mybatis添加记录时返回主键id

    参考:mybatis添加记录时返回主键id 场景 有些时候我们在添加记录成功后希望能直接获取到该记录的主键id值,而不需要再执行一次查询操作.在使用mybatis作为ORM组件时,可以很方便地达到这个 ...

  3. HashMap和ConcurrentHashMap实现原理及源码分析

    HashMap实现原理及源码分析 哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表, ...

  4. java中的构造,封装

    今天给大家讲一下面向对象中的构造,封装: 构造:构造方法有以下几个特点:1.方法名和类名一致.2.无返回类型.接下来的几种构造样式,直接上代码吧: //这是一个宠物类 有一个属性:名字(name) p ...

  5. ERP中的地区管理

    地区管理 地区管理主要实现地区数据的添加.编辑.查看.启用.禁用等功能,另外还包含地区选择控件封装. 业务功能点: 地区数据查看:地区列表树状展现,列表增加省.市.区.县.乡图标. 地区选择控件:选择 ...

  6. Promise--优雅的异步回调解决方案

    当一个接口需要依赖另一个接口的请求数据时,通常有两种解决方式,一个是将请求数据的接口设为同步,之后调另一个接口,另一个是在请求数据接口的成功回调里调另一个接口. 但是:当一个接口需要依赖很多个接口的请 ...

  7. Emacs Python 自动补全--Elpy

    安装方法: 首先,安装一些依赖包: # Either of these pip install rope pip install jedi # flake8 用来检查语法错误 pip install ...

  8. ubuntu14.04拼音输入法问题的解决方法

    14.04的自带的拼音输入法,打字的时候你会发现有很大的问题,打不出来一个完整的字. 解决方法: ibus-daemon -drx   //重启ibus进程 在终端里输一次这个命令就ok了. 或者装个 ...

  9. 从头开始搭建一个VSCode+NetCore的项目

    看这个前,先要对VS开发C#有所了解 获取作案工具 NetCore SDK https://www.microsoft.com/net/learn/get-started/windows 安装 建立工 ...

  10. 在java中如何使用etcd的v2 和v3 api获取配置,并且对配置的变化进行监控

    etcd 和zookeeper 很像,都可以用来做配置管理.并且etcd可以在目前流行的Kubernetes中使用. 但是etcd 提供了v2版本合v3的版本的两种api.我们现在分别来介绍一下这两个 ...