Gradle 4.2发布

Gradle最近发布了其流行的构建工具的4.2版本,新增了一些重要特性。其中有项新增特性就是对于原生的编译和链接任务支持并行任务执行。关于这项特性,InfoQ咨询了Gradle的首席工程师 Eric Wendelin

\\
\

Gradle的worker API提供了一种并行执行任务的机制,借助最大化CPU的利用率减少整体的构建时间。默认情况下,Gradle 4.2会使用worker API来执行C/C++/Swift的编译和链接任务。换句话说,并行任务执行默认只会用于原生任务,目前还没有用到像Java这样的其他任务中,但是我需要说明一点,有些Gradle插件已经将该特性用到了自己的生态系统中,实现并行的任务执行。

\
\\

Wendelin还补充说,现有的项目如果升级到最新版本的话也会从中受益,因为Gradle 4.2提供了更好的性能,尤其是使用远程脚本插件的项目。Gradle 4.2 还提供了更快的构建缓存解压功能,在这样的构建过程中,会使用zipTreetarTree进行归档打包。

\\

下图来自Gradle的网站,它展现了相对于v4.1,v4.2所带来的性能提升。

\\

d900f451b5fb38dc8e948d45b46c5cef.png

\\

Gradle 4.2包含了一些面向插件作者的新API,包括嵌套DSL元素、将任务输出声明为发布制件(artifact),另外,PropertyState类型的属性支持使用Groovy DSL。按照Wendelin的说法:

\\
\

最值得一提的是用来创建嵌套DSL元素的新ObjectFactory API,还有一个新的DSL扩展,允许插件作者将给定的文件和目录声明为项目的输出。

\
\\

4.2版本的其他特性还包括Kotlin DSL的增强、支持Google Cloud Storage、支持Play v2.6的自定义Twirl模板以及按需重新构建PlayRun任务。

\\

在Java 7上运行Gradle的支持已经处于废弃状态,在Gradle 5.0版本将会彻底移除。

\\

查看英文原文Gradle 4.2 Is Released