到目前为止,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. vrn:基于直接体积回归的单幅图像大姿态三维人脸重建

    3D面部重建是一个非常困难的基本计算机视觉问题.目前的系统通常假设多个面部图像(有时来自同一主题)作为输入的可用性,并且必须解决许多方法学挑战,例如在大的面部姿势,表情和不均匀照明之间建立密集的对应. ...

  2. Linux查看CPU、内存、进程使用情况(转)

    在系统维护的过程中,随时可能有需要查看 CPU 使用率,并根据相应信息分析系统状况的需要.在 CentOS 中,可以通过 top 命令来查看 CPU 使用状况.运行 top 命令后,CPU 使用状态会 ...

  3. js页面刷新跳转的几种方式及区别

    跳转常用方法: window.location.href="index.php"; window.history.back(-1);//类似于按钮,参数是负几,就后退几次. win ...

  4. idea和androidstudio的首次git配置一些问题

    网上都有很清楚的步骤 但是 都是教怎么使用 但是对第一次应用idea内部vcs的git 则很少有详细说明 首先要在网上创建个项目 然后本地git clone下来 不建议内部vcs的fetch from ...

  5. Nginx 安装 配置 使用

    Nginx 安装 配置 使用 基本的HTTP服务器特性 处理静态文件,索引文件以及自动索引:打开文件描述符缓存(缓存元数据和文件描述符,下一次可以直接从内存找到数据或者文件的位置): 使用缓存加速反向 ...

  6. C# 基础问答

    1.静态变量和非静态变量的区别? 2.const 和 static readonly 区别? 3.extern 是什么意思? 4.abstract 是什么意思? 5.internal 修饰符起什么作用 ...

  7. centos 7 破解密码

    CentOS 7 root密码的重置方式和CentOS 6完全不一样,CentOS 7与之前的版本6变化还是比较大的,以进入单用户模式修改root密码为例. 1.重启开机按esc   2.按e     ...

  8. AngularJs 笔记

    初识 directive 指令 ng-app 初始化一个AngularJs应用程序(通过一个值(比如 ng-app="myModule")连接到代码模块.) ng-init 初始化 ...

  9. Java不走弯路教程(2.Hello,Java!)

    2.Hello,Java! 欢迎来到Java的世界,在上一章,我们已经完成了DOS的基本操作学习和Java的环境搭建,在本章中我们Java来完成一个简单的DOS程序. 2.1 Hello,Java! ...

  10. 解读Batch Normalization

    原文转自:http://blog.csdn.net/shuzfan/article/details/50723877 本次所讲的内容为Batch Normalization,简称BN,来源于<B ...