热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Gradle7.0发布,支持JDK16

Gradle7.0发布,支持JDK16本文翻译自:Gradle7.0ReleasedwithSupportforJDK16作者:UdayTatiraju可定制的开源构建自动化工具G


Gradle 7.0发布,支持JDK 16



本文翻译自: Gradle 7.0 Released with Support for JDK 16



作者: Uday Tatiraju



可定制的开源构建自动化工具 Gradle
已经 发布了7.0版本
。这个版本支持 JDK 16
、更快的增量构建、改进了验证错误的构建可靠性,以及对带有Apple Silicon处理器的新Mac的本地支持。此外,在早期版本中引入的一些预览功能,如JVM工具链、依赖锁定、依赖验证和对Java模块系统的支持,在7.0版本中都被提升为稳定功能。



之前的Gradle版本无法在最新的JDK 16上运行。然而,在 JVM工具链
的帮助下,通过禁用增量编译,人们仍然可以使用JDK 16构建他们的Java项目。在最新的Gradle 7.0版本中,完全支持在JDK 16上运行Gradle和构建项目。Gradle本身已经升级到在基于Groovy的DSL构建脚本中使用Groovy 3,以完全支持JDK 16。Groovy 3包含了 新特性和功能
,也支持与较新的Java特性的互操作性。注意,Groovy 2和Groovy 3并不完全兼容,因此在升级到Gradle 7.0时可能会出现问题。请查阅Gradle的 升级说明
以获得进一步的指导。



Gradle的每个版本都会继续为 增量构建
带来速度上的改进。这个版本在所有支持的平台上,如Windows、Linux和MacOS,默认启用了优化的文件系统观察功能。该优化帮助Gradle了解构建输入和输出文件的变化,并在两次构建之间将这些信息保留在内存中。这允许Gradle在每次构建时跳过从文件系统中读取信息,从而减少在构建之间确定输入和输出文件变化所需的磁盘I/O量。



另一个构建速度的提高是在这个版本中通过忽略空的** buildSrc
文件夹实现的。在这个版本之前,
buildSrc
文件夹的存在会迫使Gradle执行所有相关的任务,可能会导致构建缓存丢失和额外的性能开销。现在,Gradle将忽略空的
buildSrc
**文件夹,从而跳过执行不必要的任务,避免缓存丢失。



Gradle 7.0版本的一个突出的稳定特性是对 Java模块系统
的全面支持。用户现在可以通过Gradle 构建、测试和运行
Java模块。仅仅是module-info.java的存在,就可以让Gradle推断出你的jar是一个模块,必须放在模块路径上,而不是传统的classpath上。



插件开发的改进,如支持 具有多个变体的插件
,对本地插件使用包含的构建,对安全公告的修复,依赖锁定的改进,实验性的版本目录,以及类型安全的项目访问器是Gradle 7.0中其他一些值得注意的改进和功能。




推荐阅读
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
  • 初探性能优化:入门指南与实践技巧
    在编程领域,常有“尚未精通编码便急于优化”的声音。为了从性能优化的角度提升代码质量,本文将带领读者初步探索性能优化的基本概念与实践技巧。即使程序看似运行良好,数据处理效率仍有待提高,通过系统学习性能优化,能够帮助开发者编写更加高效、稳定的代码。文章不仅介绍了性能优化的基础知识,还提供了实用的调优方法和工具,帮助读者在实际项目中应用这些技术。 ... [详细]
  • Dense Matrix Inversion Results in Segmentation Fault: Causes and Solutions ... [详细]
  • 零拷贝技术是提高I/O性能的重要手段,常用于Java NIO、Netty、Kafka等框架中。本文将详细解析零拷贝技术的原理及其应用。 ... [详细]
  • 当程序首次启动时,由于代码尚未加载到内存中,会触发大量的页面错误,从而需要从磁盘读取代码。那么,当程序终止后,这些二进制文件是否会继续驻留在内存中呢?本文将探讨程序退出后的内存状态及其对系统性能的影响。 ... [详细]
  • 在尝试为 Unity 编译一个简单的 Java 库时,运行 `ant jar` 命令后遇到了 Java I/O 异常。具体错误信息为“无法启动程序 ${aAPT},错误代码 2”,这通常表示指定的文件或目录不存在。此问题可能是由于环境配置不正确或路径设置有误导致的。建议检查相关路径和环境变量,确保所有依赖项都已正确安装和配置。 ... [详细]
  • Python与R语言在功能和应用场景上各有优势。尽管R语言在统计分析和数据可视化方面具有更强的专业性,但Python作为一种通用编程语言,适用于更广泛的领域,包括Web开发、自动化脚本和机器学习等。对于初学者而言,Python的学习曲线更为平缓,上手更加容易。此外,Python拥有庞大的社区支持和丰富的第三方库,使其在实际应用中更具灵活性和扩展性。 ... [详细]
  • 如何在Ubuntu系统中直接使用Snap安装软件
    Canonical与Opera Software近日宣布,基于Chromium的Opera浏览器现已作为Snap包提供给Ubuntu用户,显著提升了在Linux操作系统上的安装便捷性和兼容性。通过Snap,用户可以在Ubuntu系统中轻松安装和更新Opera浏览器,享受更流畅的浏览体验。此外,Snap的容器化特性还确保了应用的安全性和稳定性,为用户提供更加可靠的软件环境。 ... [详细]
  • 使用Java 1.8 编译兼容1.6 JVM 的Class文件
    本文探讨了如何使用Java 1.8 编译器生成能够在1.6 JVM 上运行的Class文件,并介绍了Spring框架中的相关配置。 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 阿里巴巴终面技术挑战:如何利用 UDP 实现 TCP 功能?
    在阿里巴巴的技术面试中,技术总监曾提出一道关于如何利用 UDP 实现 TCP 功能的问题。当时回答得不够理想,因此事后进行了详细总结。通过与总监的进一步交流,了解到这是一道常见的阿里面试题。面试官的主要目的是考察应聘者对 UDP 和 TCP 在原理上的差异的理解,以及如何通过 UDP 实现类似 TCP 的可靠传输机制。 ... [详细]
  • 本文详细解析了Java类加载系统的父子委托机制。在Java程序中,.java源代码文件编译后会生成对应的.class字节码文件,这些字节码文件需要通过类加载器(ClassLoader)进行加载。ClassLoader采用双亲委派模型,确保类的加载过程既高效又安全,避免了类的重复加载和潜在的安全风险。该机制在Java虚拟机中扮演着至关重要的角色,确保了类加载的一致性和可靠性。 ... [详细]
  • 深入解析CAS机制:全面替代传统锁的底层原理与应用
    本文深入探讨了CAS(Compare-and-Swap)机制,分析了其作为传统锁的替代方案在并发控制中的优势与原理。CAS通过原子操作确保数据的一致性,避免了传统锁带来的性能瓶颈和死锁问题。文章详细解析了CAS的工作机制,并结合实际应用场景,展示了其在高并发环境下的高效性和可靠性。 ... [详细]
  • 线程能否先以安全方式获取对象,再进行非安全发布? ... [详细]
  • 在项目开发过程中,掌握一些关键的Linux命令至关重要。例如,使用 `Ctrl+C` 可以立即终止当前正在执行的命令;通过 `ps -ef | grep ias` 可以查看特定服务的进程信息,包括进程ID(PID)和JVM参数(如内存分配和远程连接端口);而 `netstat -apn | more` 则用于显示网络连接状态,帮助开发者监控和调试网络服务。这些命令不仅提高了开发效率,还能有效解决运行时的各种问题。 ... [详细]
author-avatar
大道废_796
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有