Gradle笔记——关于Gradle 1.12

简介: 到目前为止,Gradle已经出到2.1版本了,从1.12这个版本开始看,主要是因为我使用Gradle是Android开发所需要。公司里面是采用Android Studio来进行Android项目的开发的,而公司里普遍用的还是Android Studio的0.8.4及其之前的版本,暂时还不能更新到2.0或更新的版本。

到目前为止,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,以免我万一误导了别人却没有改正的机会。
目录
相关文章
|
7月前
|
Java 程序员 API
Gradle笔记 二 Gradle的基础Groovy
Gradle笔记 二 Gradle的基础Groovy
83 0
|
7月前
|
Java API Spring
Gradle基础笔记
配置Gradle镜像为阿里云,修改`gradle-wrapper.properties`。使用`subprojects`管理父项目,设定编码为UTF-8。应用Spring Boot和依赖管理插件,子项目排除特定依赖,如`javax.servlet`。针对项目间依赖,使用`implementation`或`api`关键字。完整示例展示了多项目构建,包括仓库、依赖、源代码设置、任务和编码配置。
182 1
|
7月前
|
Java Maven 数据安全/隐私保护
Gradle笔记 三 Gradle的项目周期和settings 文件
Gradle笔记 三 Gradle的项目周期和settings 文件
96 0
Gradle笔记 三 Gradle的项目周期和settings 文件
|
7月前
|
Java 关系型数据库 MySQL
Gradle笔记 六 Gradle 中的Dependencies
Gradle笔记 六 Gradle 中的Dependencies
153 0
|
7月前
|
前端开发 Java Maven
Gradle笔记 七 publishing 项目发布(二)
Gradle笔记 七 publishing 项目发布
289 0
|
7月前
|
Java Maven
Gradle笔记 七 publishing 项目发布(一)
Gradle笔记 七 publishing 项目发布
140 0
|
7月前
|
存储 缓存 Java
Gradle笔记 八 Gradle 插件(二)
Gradle笔记 八 Gradle 插件
158 0
|
7月前
|
Java
Gradle笔记 八 Gradle 插件(一)
Gradle笔记 八 Gradle 插件
163 0
|
7月前
|
Java
Gradle笔记 五 Gradle 中的文件操作
Gradle笔记 五 Gradle 中的文件操作
53 0
|
7月前
|
存储 Java 测试技术
Gradle笔记 四 Gradle的核心 TASK(二)
Gradle笔记 四 Gradle的核心 TASK
73 0