Linux 之父出席、干货分享、圆桌讨论,精彩尽在 OpenCloudOS 社区开放日,报名戳 了解详情
写点什么

Gradle 发布 4.7 版本,支持 Java 10

  • 2018 年 6 月 04 日
  • 本文字数:1147 字

    阅读完需:约 4 分钟

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

gradle 是一个综合性的多语种构建工具,已经发布了 4.7 版,新功能包括:

  • 增量式注解处理
  • Java 10 运行时支持
  • 分组的非交互式控制台日志
  • 优先重新运行失败的测试以获得更快的反馈
  • Kotlin DSL 0.16 ,新的预编译脚本插件

下面简要介绍其中的一些功能。

增量式注解处理

Gradle 的增量 Java 编译器(自 2.1 版开始提供)已得到增强,包括对注解的增量处理。 Gradle 支持两种用于增量式编译的注解处理器:一种是隔离,单独处理注解元素,一种是聚合,将多个注解元素聚合到一个或多个输出文件中。其他类型的注解处理器会对注解进行全面的重新编译。

下面的例子演示了如何将一个 Dagger 注解处理器添加到 build.gradle 文件中:

复制代码
dependencies {
// Dagger 只能在注解类路径中找到
annotationProcessor 'com.google.dagger:dagger-compiler:2.8'
// Dagger 类库需要存在类路径中
implementation 'com.google.dagger:dagger:2.8'
}

非交互式控制台日志

Gradle 支持两种控制台模式:普通模式(plain),用在 IDE 或 CI 构建代理中,还有一种是丰富模式(rich),用在命令行中。在新版本之前,普通模式的输出(如下面使用 IntelliJ IDEA 中的 Gradle 4.4)与丰富模式的输出不一样。

在新版本中,普通模式和丰富模式都会产生相同的输出。如下面的命令行示例所示,由Gradle 任务生成的日志信息现在被分组在一起,头部信息前面增加了> Task。

Kotlin DSL

Gradle 现在支持的 Gradle Kotlin DSL版本0.16.3 ,带有预编译 Kotlin DSL 脚本,支持 Kotlin 1.2.31 和 Java 10,可以与 IntelliJ IDEA 更好的集成,并提供更一致的 API。

发行说明中写道:

预编译脚本插件是编译过的 Kotlin 脚本,这些脚本是常规 Kotlin 源代码集的一部分。插件的标识符将自动从文件名和可选的包名声明中获得。

可以在 build.gradle 文件中启用预编译脚本:

复制代码
plugins {
'java-gradle-plugin'
'kotlin-dsl'
}
apply<org.gradle.kotlin.dsl.plugins.precompiled.precompiledscriptplugins>()
</org.gradle.kotlin.dsl.plugins.precompiled.precompiledscriptplugins>

一旦启用,在 src/main/kotlin 中定义的脚本会自动变成普通的 Gradle 插件。在下面的示例中,一个叫作 my-plugin.gradle.kts 的脚本将成为 my-plugin,然后在 build.gradle 文件中使用。

Gradle 支持的语言包括:

  • Java
  • C++
  • Python({py} gradle)
  • JavaScript
  • Clojure
  • Scala

相关资源

查看英文原文 Gradle Releases Version 4.7 with Support for Java 10

2018 年 6 月 04 日 12:582088
用户头像

发布了 731 篇内容, 共 396.1 次阅读, 收获喜欢 1941 次。

关注

评论

发布
暂无评论
发现更多内容

调薪

池建强

团队管理 薪酬

分析师的进阶与升华:努力把自己做“没”

松子(李博源)

方法论 数据模型 数据分析师 指标体系 商业模型

推荐一些学习MySQL的资源

Simon

MySQL

字节跳动的ToB生意经

ToB行业头条

【写作群星榜】7.11~7.17 写作平台优秀作者 & 文章排名

InfoQ写作社区官方

写作平台 排行榜 热门活动

细数2020上半年PC端十大“黑恶势力”,一起康康是谁在“兴风作浪”

360安全卫士

分布式事务解决方案Seata源码解析

Chank

Java 分布式 分布式事务

定义@WeClub

WeClub

WeClub

信创舆情一线--台积电宣布9月14日断供华为

统小信uos

华为 芯片 半导体

阿里巴巴取消周报?别高兴太早,也不见得是一件好事

非著名程序员

阿里巴巴 程序员 职场成长 职场误区

全球区块链专利排行榜中国52家企业上榜

CECBC

从IT建设模式变化看客户中心发展

环信

OOP面向对象编程(Object-Oriented Programming)概述

古月木易

面向对象 oop

高价值干货:这可能是你见过最全的网络爬虫总结

华为云开发者联盟

Python Web 爬虫 python 爬虫 内存数据库

小白教程——基于阿里云快速搭建自己的网站

诸葛小猿

阿里云 视频 网站搭建 小白

【DevCloud·敏捷智库】如何利用用户故事了解需求

华为云开发者联盟

敏捷开发 需求管理 需求 故事 华为云

腾讯员工每天在岗不足 8 小时被辞?背后原因可能不止你看到的这些!

程序员生活志

腾讯 辞退

为什么编译原理被称为龙书?

cxuan

编译原理 编译优化

YAPI接口管理平台使用基础入门(一)

Man

DevOps 最佳实践 YAPI API接口管理

2020技能排名:Python增速爆炸,SQL和Java老当益壮,AWS大吃一惊

程序猿黑哥

Java Python sql

犯罪黑客线上拉人入伙,流窜多地网吧植马,仅为盗取游戏账号

360安全卫士

分布式系统信息一致性问题与方案分析

superman

分布式 极客大学架构师训练营

智算中心开启智慧时代,浪潮信息迎来新发展

Geek_116789

项目管理:如何显性管理并提升Story分解能力

华为云开发者联盟

项目管理 DevOps 故事 用户研究 华为云

我成功转行做了java程序猿!

诸葛小猿

Java 程序员 转行

编程核心能力之复用

顿晓

编程 复用 编程日课 技术思维

Rust多线程之数据共享

编号94530

rust 多线程 数据共享 什么是多线程

案例研究之聊聊 Mybatis 源码 (三)

小诚信驿站

学习 开源 刘晓成 源码解析 小诚信驿站

尝鲜刚发布的 SpringFox 3.0.0,以前造的轮子可以不用了...

程序猿DD

Spring Boot

计算机网络基础(五)---网络层-IP地址的子网划分

书旅

laravel 计算机网络 网络协议 计算机基础

OOP面向对象编程(Object-Oriented Programming)概述

奈学教育

面向对象编程

GPU容器虚拟化:用户态和内核态的技术和实践详解

GPU容器虚拟化:用户态和内核态的技术和实践详解

Gradle发布4.7版本,支持Java 10_Java_Michael Redlich_InfoQ精选文章