Gradle 5.0 正式版本发布,一大波新特性来袭

  • 时间:
  • 浏览:2
  • 来源:彩神官网

最后,在执行完 ./gradlew app:dependencies 命令后,但会 你发现当匹配上 com.fasterxml.jackson 组的 module 的版本都保持了一致,也很久

dependencies {    // import a BOM. The versions used in this file will override any other version found in the graph    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")     // this version will be overriden by the one found in the BOM    implementation("org.codehaus.groovy:groovy:1.8.6") } 克隆好友代码

早在 Gradle 4.x 版本中就机会支持了通过使用 Koltin DSL 的措施去编写构建脚本,但会 当时刚出来,太久有地方支持的还不太好(还要踩坑),太久有不言而喻推荐大伙儿迁移过去,很久尝鲜为主。现在 Kotlin DSL 1.0 release 版本出来后,原因接下来但会 你放心的迁移机会使用 Kotlin DSL 啦。新版本做了太久有优化和改进的地方,比如:

init task 生成的构建脚本将推荐使用新的 implementationtestImplementationtestRuntimeOnly 去代替 compiletestCompiletestRuntime

在历经了一年多时间, 20 个 4.x 系列版本的迭代后,Gradle 官方终于在 11月26日 发布了 5.0 的正式版本,先倒进一张官方各版本 Gradle 性能对比图

task hangingTask() {    doLast {        Thread.sleep(10000)    }    timeout = Duration.ofMillis(100) } 克隆好友代码

 ●  --package 选项还还要帮助你调整生成的项目包名

新版本对 gradle init 措施进行了升级,通过更多的形状和交互,来帮助大伙儿去快速初始化另一个 Gradle 项目。简单来说励志的话 ,很久加强版的脚手架。

 

init task 还还要通过 kotlin-library 机会 kotlin-application 类型来设置生成另一个 Kotlin 的类库机会应用。你只还要根据它的提示来操作即可。

 ●  减慢的构建速率单位 ●  细粒度的传递依赖管理 ●  更高效的内存执行等等。 ●  ……

让大伙儿赶紧来看一下哪些令人激动的新形状。

 ●  jackson-databind 版本 2.8.9 -> 2.9.5(低版本通过依赖仲裁变为高版本)

通过以上的分析,大伙儿发现实际上解蒸发来的依赖库版本老出了和预期不一致的具体情况,而同类 五种具体情况很容易会原因一些未知现象报告 ,尤其是在一些不兼容老版本接口的依赖库里就会直接原因 Crash。

通常,针对五种现象报告 ,很久的做法机会很久简单粗暴的强指定版本号,不过,现在有了更加优雅的措施去帮助大伙儿去管理版本,即 Dependency version alignment,大伙儿还还要通过指定另一个  platform 去管理某一组的 module

回到刚才的场景示例中,大伙儿在 build.gradle 里还还要定义 jackson 为一组的 module 版本的规则,如下所示:

 ●  jackson-core 版本 2.9.5

 ●  jackson-annotation 版本 2.9.0 (jackson-databind 2.8.9 版本间接依赖 jackson-annotation 2.9.0 版本,注意这里,机会上端的依赖仲裁,变成了被高版本 的 jackson-databind 2.9.5 所依赖)

 ●  Error Highlighting:错误高亮 ●  Quick Documentation:文档快速提示

 ●  Refactoring:代码重构

另外,platform 同样也提供了强制为一组 module 指定某个版本号,比如:

机会 vertx-core 也间接依赖了 jackson-core,通过依赖传递,当解析依赖信息的很久,大伙儿实际依赖的版本号是:

init task 会创建另一个 空的 resource 目录

一些现有功能的提升,删改点击这里

Gradle Native project 持续的改善和提升 native 生态系统, 更多细节:Changes included in Gradle 5.0

 ●  jackson-annotation 版本 2.9.0 -> 2.9.5

还有另一个 比较方便的地方,很久通过 platform,大伙儿还还要直接省略该 module 的版本号(从此告别通过定义版本变量去维护众多 module 的版本信息),如下所示:

 ●  jackson-core 版本 2.9.5(依赖传递)

比如,大伙儿 build.gradle 有以下依赖:

 ●  Dependency version alignment ●  Gradle build initialization features ●  Searchable documentation ●  Task timeouts ●  HTTP retries during dependency resolution ●  Java 11 runtime support ●  Plugin authoring features ●  Gradle Native features ●  Promoted features

我擦,感觉一脸懵逼,没关系,下面我会针对哪些形状做些简要的总结和说明,内容机会比较多,但会 干货满满,建议耐心阅读下去。

Gradle 5.0 版本构建支持 Java 11 版本

dependencies {    components.all(JacksonAlignmentRule) } 克隆好友代码

五种超时设置果然太有用了有木有。不如很久当你机会一些网络原因,原因你的 build task 老是 卡在那里的很久,你的心里一定是万马奔腾的感觉,赶紧用起来吧,不言而喻再浪费哪些无用的时间了。示例:

Gradle 5.0 版本真的是干货满满,尤其是对于使用 Gradle 构建的 Android 机会 Java 开发者来说,像 Kotlin DSL(构建语言)、Dependency version alignment(依赖版本一致性)、Performance features(性能提升) 等等哪些形状还是很但会 你期待的。有兴趣的小伙伴还还要赶紧更新一波了。



简单看一遍下介绍,还还要帮助你查看代码覆盖率的 JaCoCo 插件,感兴趣的同学还还要点这里了解更多

 distributionBase=GRADLE_USER_HOME  distributionPath=wrapper/dists  distributionUrl=https\://services.gradle.org/distributions/gradle-5.0-all.zip  zipStoreBase=GRADLE_USER_HOME  zipStorePath=wrapper/dists 克隆好友代码

如可迁移你的构建语言到 Kotlin DSL 上,还还要参考我的另一篇文章Gradle指南之从Groovy迁移到Kotlin

dependencies {    // Forcefully downgrade the Jackson platform to 2.8.9    implementation enforcedPlatform('com.fasterxml.jackson:jackson-platform:2.8.9') } 克隆好友代码

如可升级到 Gradle 5.0 版本呢,很简单,以下五种措施任选其一

Gradle 的文档搜索功能回来了(真是我老是 我不在乎 五种功能在哪里),总之,还还要更加方便的搜索用户手册和 DSL 的描述。



5.0 版本共计修复了 166 个 issues(惊人),当然,伴随而来的还有一些已知的 issues ,删改还还要点击这里 5.0 release-notes。

五种版本为插件和自定义 task 提供了创建 SourceDirectorySet 的 API、提高 Provider 的 API、和构建缓存的兼容性提高。

Dependency version alignment allows different modules belonging to the same logical group (a platform) to have identical versions in a dependency graph.

 ●  jackson-databind 版本 2.8.9 -> 2.9.5

通过 --priority low 命令参数机会 org.gradle.priority=low 属性设置还还要但会 你的 Gradle 以另一个 低优先级的应用应用系统进程启动,至于好处嘛,当然没有你一边在 building 的很久,一边听音乐的很久,再很久会感觉一卡一卡的了

class JacksonAlignmentRule implements ComponentMetadataRule {    void execute(ComponentMetadataContext ctx) {        ctx.details.with {            if (id.group.startsWith("com.fasterxml.jackson")) {                // declare that Jackson modules all belong to the Jackson virtual platform                belongsTo("com.fasterxml.jackson:jackson-platform:${id.version}")            }        }    } } 克隆好友代码



dependencies {    // a dependency on Jackson Databind    implementation 'com.fasterxml.jackson.core:jackson-databind:2.8.9'    // and a dependency on vert.x    implementation 'io.vertx:vertx-core:3.5.3' } 克隆好友代码

当然,还有更方便查找类和措施的 Gradle API Javadocs。

 ●  --project-name 选项还还要帮助你调整生成的项目名称

init task 会生成另一个 简单的 .gitignore 文件来帮助你设置你的 Git repository 。

HTTP 访问重试功能,嗯。挺好

当你在控制台执行 init task 后,Gradle 机会提供更多的构建信息提示,来帮助你生成 Gradle 模版项目。

但会 应用该规则:

五种概念真是不好理解,我此人 也是花了一些时间去理解和消化。还是通过另一个 示例来说明吧。机会有英文水平高机会理解能力比较强的同学,欢迎指教。

根据官网的介绍,直译过来的意思是:依赖版本一致性允许属于相同的逻辑组(平台)的不同module 拥有相同的版本依赖图。

猜你喜欢

怎样加入基督教,做一个信徒?

为你推荐:加入基督教都有目的,要信仰耶稣基督,做1个多真正的信徒不不 得救。圣经上叫做【因信得救】。新约《圣经》罗马书10章9节说:你若口里认耶稣为主,心里信神叫他从死里复活

2020-02-27

西方艺术发展至今共分为哪几个阶段

展开删剪可选中一个多或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个大问題。下载百度知道APP,抢鲜体验 我来答换一换使用百度知道APP,立即抢鲜体验。你的

2020-02-27

国外名人美国总统三个字

展开全版展开全版收起1条折叠回答可选中有有另三个 或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个什么的问题。使用百度知道APP,立即抢鲜体验。你的手机镜头里

2020-02-27

盘它!10篇+阿里云技术经典案例,看完必收藏(下)

讲透Netty底层通讯原理就看哪些干货帖,大数据产品从入门到精通|MVP讲堂盘它!40篇+阿里技术经典案例,就看必收藏下拉加载更多请收下这份关于人工智能的根目录——博客埋点系列

2020-02-26

游客cmvdxudqxtao4的主页

阿里云ET专家,重点在智能语音、人脸识别、图像识别、OCR等...阿里云计算美码师,老码农一枚,唯美食与技术不能辜负,欢迎交流及打扰!文章:12丨粉丝:641500丨话题:1云

2020-02-26