2018-11-28 Gradle 5.0 发布
2018-11-28 本文已影响18人
lotosbin
Gradle 5.0 正式发布了,来看下这个版本有哪些新特性吧~
1 Kotlin DSL 1.0
首先,Gradle Kotlin DSL现在已经可以用于生产环境了 ,1.0版本正式发布!
如果您更喜欢Groovy的灵活性和动态特性,那也完全没有问题 - Groovy DSL不会被弃用。
2.依赖项版本对齐
此版本的Gradle引入了依赖项版本对齐。
这允许属于同一逻辑组( platform )的不同模块在依赖图中具有相同的版本。
3 Gradle构建初始化功能升级
-
创建资源目录
init任务创建空资源目录。 -
创建.gitignore文件
虽然init任务不会自动创建Git存储库,但init任务会生成一个简单的.gitignore文件,以便您更轻松地设置Git存储库。此.gitignore文件忽略Gradle的构建输出。 -
可搜索的文档
Gradle API Javadocs现在利用Javadoc内置的自动完成功能,可以更轻松地找到您感兴趣的类和方法 -
任务超时
您现在可以指定任务的超时持续时间,之后它将被中断。 -
HTTP在依赖项解析期间重试
当Gradle尝试通过HTTP连接到远程存储库时,如果失败,Gradle将在将存储库列入黑名单之前重试。无需额外配置。
4 性能特性
- Gradle可以作为低优先级进程启动
您现在可以使用--priority low命令行参数或org.gradle.priority=low属性将Gradle作为低优先级进程启动。这可以确保IDE或浏览器等其他应用程序保持响应。 - 多个任务输出属性不再禁用缓存
- JaCoCo插件现在可以使用构建缓存和并行测试执行
5 Java 11运行时支持
Java爱好者将很高兴地看到此版本支持使用JDK 11运行Gradle构建 。
推广功能
推广功能是在以前版本的Gradle中孵化的功能,但现在受支持并且具有向后兼容性。
以下是此Gradle版本中的推广功能。
- 所有4.0之前的孵化API都得到了推广
- 并行任务执行
- 持续构建
- 复合构建
-
java-gradle-plugin
插件 -
distribution
插件 -
jacoco
插件 -
build-init
插件 -
IncrementalTaskInputs
和InputFileDetails
- 输入规范化(
org.gradle.normalization
),包括InputNormalizationHandler
-
FileNormalizer
及其子类 -
@LocalState
,Task.getLocalState()
和TaskLocalState
Task.getDestroyables()
-
TaskState.getUpToDate()
和TaskState.getNoSource()
-
ValidateTaskProperties
任务 -
AbstractArchiveTask.preserveFileTimestamps
和reproducibleFileOrder
属性 -
ForkOptions.javaHome
属性 Project.normalization
-
GroovyCompile.groovyCompilerJvmVersion
和javaToolChain
属性 -
JavaVersion.
VERSION_11
常量以及isJava11()
和isJava11Compatible()
方法
升级说明
./gradlew wrapper --gradle-version=5.0
独立下载可在gradle.org/releases 上找到。
更多内容 查看官方发布日志