文档章节

Gradle 5.0 更新介绍

你们都是技术宅
 你们都是技术宅
发布于 2018/11/30 02:09
字数 1100
阅读 185
收藏 0

Gradle 5.0正式版出来有几天了,这个工具的发展速度还真是惊人。前些天我看到gradle 5 rc版的时候还在想正式版什么时候出,没想到rc版没过几天正式版就出来了。那么正好,就来介绍一下gradle 5.0正式版加入的一些新功能吧。

依赖版本对齐

项目中引用的第三方包多了,难免出现引入了同一个包的不同版本,导致冲突的情况发生。依赖版本对齐这个功能就是为了解决这种情况而出现的。如果要对齐依赖版本,首先需要一个逻辑组(platform),platform规定了要使用的依赖版本,它可以是我们声明的依赖版本,也可以是由其他地方导入的BOM文件。在遇到了不同版本的情况下,都会对齐到platform中规定的版本上。

下面是官方文档的例子:

dependencies {
    // 导入了BOM文件, 会覆盖其他地方声明的版本
    implementation(enforcedPlatform("org.springframework.boot:spring-boot-dependencies:1.5.8.RELEASE"))

     // define dependencies without versions
    implementation("com.google.code.gson:gson")
    implementation("dom4j:dom4j")

     // 这里的版本会被对齐到BOM中声明的版本
    implementation("org.codehaus.groovy:groovy:1.8.6")
}

Kotlin DSL 1.0

Gradle官方很早就开始开发基于Kotlin的DSL了,在Gradle 5.0中Kotlin DSL正式版终于现身了,这意味着我们可以在生产项目中使用Kotlin DSL了。和默认的Groovy DSL相比,由于Kotlin DSL是静态的,所以可以提供更多的代码补全、提示、语法高亮等支持。

如果想要使用Kotlin DSL,但是还是不太熟悉Kotlin DSL的语法也没有关系,Gradle官方早就写了一大堆示例项目,相信你看完以后肯定就了解如何使用了。连接在这里

Kotlin DSL

Gradle构建初始化功能

gradle init任务现在增加了一些很实用的功能:

  • 交互模式,初始化的时候可以在交互模式中输入信息;
  • Kotlin类库和程序,现在可以在初始化的时候生成Kotlin类库和程序类型;
  • 用推荐的配置生成构建,init任务现在会使用implementationtestImplementationtestRuntimeOnly配置来代替原来的compiletestCompiletestRuntime
  • 配置项目和代码包名,现在init任务提供了参数来设置项目和源代码的包名;
  • 创建资源文件夹,现在init任务还会创建空的resource文件夹;
  • 创建.gitignore文件。

可搜索的文档

这个改进属于官方文档的改进,现在官方文档基于Algolia添加了搜索框,可以搜索你想要的内容。

可搜索的文档

任务超时

现在任务可以指定一个超时值,当执行时间超过的时候会停止。

解析依赖时的HTTP重试

现在当Gradle通过HTTP访问远程仓库的时候,如果失败,会在拉黑这个仓库之前重试。

性能改进

以低优先级进程方式启动

现在Gradle可以使用--priority low命令行参数或者org.gradle.priority=low属性作为低优先级进程启动,这可以保证IDE和终端即使在繁重的任务时始终处于可响应状态。

还有一些性能改动,感兴趣可以参考官方文档。

Java 11支持

现在可以使用Java 11来运行Gradle。

这个功能其实也挺重要的,之前在升级到Java 11的时候我发现一些Gradle构建失败了,现在可以正常运行它们了。

提升的功能

之前很多功能都处于测试和开发状态,现在它们作为正式特性出现在Gradle中了。官方文档有一个很长的列表,这里只简单列出一部分:

更新日志还有很多地方我没有介绍,有兴趣的可以查看官方文档。

© 著作权归作者所有

共有 人打赏支持
你们都是技术宅
粉丝 0
博文 4
码字总数 3286
作品 0
呼和浩特
程序员
私信 提问
RecyclerView导包

由于RecyclerView放在support library v7包中,所以我们想要使用就必须要导包。下面就介绍下在Eclipse和Android Studio中是如何导入这两个包 Eclipse: 第一步:通过SDK manager下载/更新And...

码娃娃
2016/06/02
93
0
Spring Framework 5.0.1 小版本更新,修复部分缺陷

此次更新版本主要修复了部分5.0版本的BUG,其他更新包括: 1. 对Java9的模块化支持,兼容JDK9的stream库等; 2. HTTP/2文档更新; 3. 支持AspectJ 1.9 RC1; 4. 构建工具支持 Gradle 4.2(1...

B超
2017/10/25
835
3
Gradle 5.0 Milestone 1 发布,项目自动化构建工具

Gradle 5.0 首个里程碑版本 Milestone 1 发布了,并带来了不少优秀的新功能和改进。 首先,Gradle Kotlin DSL 1.0 现已发布,并可用于生成环境。使用 Kotlin 编写构建逻辑可在 IDE 中提供重要...

达尔文
2018/10/05
2.1K
3
Gradle 5.1 RC1 发布,项目自动化构建工具

Gradle 5.1 RC1 发布了。 该版本包含以下新增特性:依赖性匹配仓库, 生产环境就绪的 configuration avoidance API, Gradle Kotlin DSL 1.1, 等。 阅读 Gradle 5.x 升级指南,了解有关从 Grad...

局长
2018/12/15
0
0
史上最详细的Android Studio系列教程二--基本设置与运行

上面一篇博客,介绍了Studio的优点与1.0 RC的安装与上手体验,没想到google的更新速度这么快,已经出了RC 2版本,主要是修复一些bug。那么今天就带大家预览下Stduio的界面与基本功能。 项目结...

让代码飞一会
2015/07/05
0
1

没有更多内容

加载失败,请刷新页面

加载更多

解决 Zabbix 监控选项中文乱码问题

Zabbix中文监控选项字体显示不全,如图所示。 首先查找zabbix安装目录,找到字体具体位置。 #查找zabbix安装位置[root@promote ~]# whereis zabbixzabbix: /usr/lib/zabbix /etc/zabbix...

白豆腐徐长卿
13分钟前
4
0
JavaScript总结

從此迷花粉
16分钟前
0
0
python基于windows自动下拉git代码并重启程序模块。

前言: 笔者最近在搞一个项目,需要把python客户端代码(可以理解成绑定不同账号的爬虫吧)部署在20+台windows机器上(以后还会追加新机器)。由于客户机多,而且常常优化、修bug、加功能,使...

開援带碼
23分钟前
0
0
Error: BrowserModule has already been loaded

angular 2踩的坑: 在根module中AppModule添加过BrowserModule后, 其它Module中不能再添加BrowserModule、 BrowserAnimationsModule NoopAnimationsModule 用CommonModule代替 https://stac......

Jack088
30分钟前
0
0
CXF - 拦截器

服务器端自定义拦截器 package org.shi.cxf;import java.io.FileNotFoundException;import java.io.PrintWriter;import javax.xml.ws.Endpoint;import org.apache.cxf.ext.log......

小小小施爷
31分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部