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精选文章