Gradle 6.1 发布,项目自动化构建工具
Gradle 6.1 已发布,此版本支持可重定位的依赖项缓存,可配置 Java,Groovy 和 Scala 类之间的编译顺序,并启动了一组新的可下载示例。同时还修复了一些错误,为 Gradle 插件作者提供了方便等等。
具体更新内容如下:
Gradle 的依赖项缓存可以重定位
$GRADLE_HOME/caches/modules-2
现在可以将 Gradle 6.1 和更高版本缓存的依赖项重新定位到 Gradle Dependency 缓存下。如果已经下载了依赖项,则将其移至新位置或植入主机映像后,使用依赖项缓存的构建将不需要访问网络即可下载工件或元数据。
请注意,应使用相同的Gradle版本对缓存进行初始化和使用,以达到最佳效果。有关更多详细信息,请参见文档。
Gradle 团队表示,这只是帮助使用临时 CI 代理的组织减少构建过程中下载依赖项的开销的第一步。
在Groovy,Scala和Java之间定义编译顺序
以前,Java,Groovy 和 Scala 编译之间的关系是在同一项目中使用显式任务依赖性进行硬编码的。Gradle 假定 Groovy 和 Scala 编译将始终依赖 Java 编译。也就是说,compileGroovy
并且compileScala
将直接取决于的输出compileJava
。
这些任务依赖项已使用目录属性进行了重塑。编译任务之间的关系在任务的类路径中表示。从类路径中删除目录属性也会删除相应的任务依赖项。这可用于更改 Java,Groovy 和 Scala 编译任务之间的关系。
例如,在以前,当在同一项目中组合 Groovy 和 Kotlin 时,就很难使 Kotlin 类依赖于 Groovy 类。
tasks.named('compileGroovy') { // Groovy only needs the declared dependencies // and not the output of compileJava classpath = sourceSets.main.compileClasspath } tasks.named('compileKotlin') { // Kotlin also depends on the result of Groovy compilation // which automatically makes it depend of compileGroovy classpath += files(sourceSets.main.groovy.classesDirectory) }
可下载的 Gradle 示例
除了教程和指南以及广泛的用户手册,Gradle 现在还提供了样本索引,以演示可以使用 Gradle 构建的各种项目,例如 Kotlin 或 Spring boot。这些样本还展示了可以使用 Groovy 或 Kotlin DSL 解决的常见问题,例如向 Java 项目添加集成测试。每个样本都捆绑了一个 Gradle 包装器,因此用户甚至无需尝试就可以安装 Gradle。
这些示例使用与文档相同的 Gradle 版本进行测试。随着时间的推移将添加更多样本。如果您对问题或用例有任何建议,认为可以作为一个很好的例子,请打开一个新的问题。
使用 JDK8 + 对方法参数名称进行 Groovy 编译支持
Gradle 6.1 支持编译 Groovy 代码并包括方法参数名称。
插件作者的改进
仅在查询值时确定属性值
在以前的 Gradle 版本中,某些 Gradle 类型(例如Property
或ConfigurableFileCollection
)提供了一种finalizeValue()
方法,可以急切地计算属性的最终值并防止进一步的更改。
当任务开始运行时,Gradle 会自动完成这些类型的任务属性,以便任务操作和 Gradle 的构建缓存/最新检查可以看到相同的值。这也避免了多次计算属性值,这有时可能很昂贵。插件还可以finalizeValue()
在查询值之前用于完成其他属性,例如项目扩展的属性。
在此版本中,这些类型获得了一种新finalizeValueOnRead()
方法。此方法与相似finalizeValue()
,不同之处在于最终值是在查询值而不是立即查询时计算的。如果属性值的计算成本可能很高,或者尚未配置该值以确保该属性的所有使用方从此点开始都能看到相同的最终值,则插件可以使用此方法。
请参阅用户手册以了解更多详细信息。
New managed property types
Gradle 5.5 引入了任务和其他类型的托管属性的概念,其中 Gradle 为在任务,项目扩展或其他自定义类型上定义的抽象属性提供了getter和setter的实现。通过删除一堆样板,这简化了插件的实现。
在此版本中,任务或其他自定义类型可能具有type的抽象只读属性DomainObjectSet<T>
。
请参阅用户手册以了解更多详细信息。
New factory methods
该ObjectFactory
类型(插件和其他自定义类型用于创建各种有用类型的实例)具有多种新的工厂方法来创建某些 Gradle 类型,这些类型只能使用以前的版本中的内部API来创建:
polymorphicDomainObjectContainer()
创建ExtensiblePolymorphicDomainObjectContainer<T>
实例的方法。namedDomainObjectSet()
创建NamedDomainObjectSet<T>
实例的方法。namedDomainObjectList()
创建NamedDomainObjectList<T>
实例的方法。
请参阅用户手册以了解更多详细信息。
对 Gradle 工具提供商的改进
工具 API:TestLauncher
可以运行特定的Test
任务测试
TestLauncher
通过指定测试类或方法的名称,Tooling API 中的接口已经可以启动测试。但是,如果有多个Test
任务,则将Test
执行所有任务。
对于 IDE,开发人员通常只希望一次只执行一个任务。Gradle 6.1 引入了新的 API,以Test
使用withTaskAndTestClasses()
和withTaskAndTestMethods()
方法对特定任务执行测试。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Netbox 2.7.0 发布,IP 地址与数据中心管理工具
NetBox 是一个 IP 地址管理(IP address management,IPAM)和数据中心基础设施管理(data center infrastructure management,DCIM)工具。 Netbox2.7.0已发布。值得注意的是,此版本完全删除了拓扑图功能(#2745)。且NetBox v2.7 是最后一个支持 Python 3.5 的主要版本。从 NetBox v2.8 开始,将需要 Python 3.6 或更高版本。 New Features 增强型设备类型导入(#451) 批量导入设备组件(#822) 外部文件存储(#1814) 通过 SVG 渲染的 Rack Elevations(#2248) Changes 删除了拓扑图(#2745) supervisor 替换为 systemd(#2902) Redis 配置(#3282) WEBHOOKS_ENABLED 配置设置已删除(#3408) API 选择字段现在使用字符串值(#3569) Enhancements #33-增加 clone objects 的能力(预填充表单字段) #792-添加电源端口和...
- 下一篇
Mir 1.7 发布,Ubuntu 显示服务器
Mir 是由 Canonical 公司开发的 Linux 操作系统下的显示服务器。 目前,Mir 1.7 已完成发布。该版本对 X11 客户端进行了许多改进,包括显示基本窗口装饰的功能,和各种代码清除等。具体更新内容如下: ABI summary mirplatform ABI升级至17 Enhancements [X11] 添加基本的窗口装饰 [X11] 添加配置选项以指定 Xwayland 可执行文件 [X11] 代码清理:修复线程,初始化,样式等。 [server/input] 对输出使用排序的映射 在未知窗口上的 BasicWindowManager 请求应该不起作用 Bugs fixed [X11] 如果我们故意 killedXwayland,请不要重新启动它(修复:#1169) [X11] 暂停 Mir 服务器时,我们无需停止 Xwayland。(修复:#1188) [wayland-platform] Apply output scale。(修复:#1133) [wayland](cursor code)不假定 PixelSource::read() 将执行 do_wit...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果