Java 近期新闻:Gradle 8.0、Maven、Payara 平台、Piranha、Spring Framework
甲骨文的技术顾问成员、Loom 项目的负责人 Ron Pressler 提交了 JEP Draft 8302326,即隐式类和主方法增强(Implicit Classes and Enhanced Main Methods)(预览)。该特性 JEP 提议“改进 Java 语言,从而能够让学生无需了解为大型程序所设计的语言特性,就能编写出第一个程序”。这个 JEP 进一步推进了甲骨文的 Java 语言架构师 Brian Goetz 在 2022 年 9 月份所发表的博客文章 “Paving the on-ramp”。
JDK 20早期访问构建版本的 Build 36 发布,它是对 Build 35 的更新,包括对各种问题的修复。关于该版本的更多细节,可以参见发布说明。
JDK 21早期访问构建版本的 Build 10 发布,它是对 Build 9 的更新,包括对各种问题的修复。关于该版本的更多细节,可以参见发布说明。
对于 JDK 20 和 JDK 21,鼓励开发人员通过 Java Bug 数据库报告缺陷。
在通往 1.0 版本的道路上,Oracle Labs 发布了 Native Build Tools 的 0.9.20 版本,它是一个 GraalVM 项目,由与 GraalVM Native Image 进行互操作的插件所组成。这个最新版本提供了如下特性:一个新的 showPublications
Gradle task,能够列出 Maven 上发布的所有 Group | Artifact | Version(GAV)坐标;当收集元数据时,确保只有一个 task 可以并发访问可达性元数据服务,以避免出现死锁;为初学者提供了一个基于干净 Java 项目的快速入门指南。关于该版本的更多信息,请参阅变更日志。
Spring Framework 6.0.5 发布,其特性包括:对 JDK 21 的早期支持;废弃 ConcurrentExecutorAdapter 类,并且将会在 6.1 版本中移除;在 PayloadMethodArgumentResolver 类中支持 Optional;在使用 GraalVM 转换原生镜像时,支持 @JsonNaming。关于这个版本的更多细节,请参阅发布说明。
Spring Cloud Data Flow 2.10.1 版本发布,其特性包括:库升级到 Spring Boot 2.7.8、Spring Framework 5.3.25 和 Spring Shell 2.1.5,以及依赖项目的升级,比如 Spring Cloud Dataflow Build 2.10.1、Spring Cloud Deployer Kubernetes 2.8.1 和 Spring Cloud Common Security Config 1.8.1。关于这个版本的更多细节,请参阅发布说明。
Red Hat 发布了 Quarkus 2.16.3.Final 版本,其特性包括支持自定义 Flyway 凭证和 URL。其他的缺陷修复和改进包括:当使用 @ConfigMapping
注解与 @Unremovable
注解一起标注时,会注册一个 CDI bean;简化了 Quarkiverse Hub 的工作流,这是用于托管和构建 Quarkus 扩展的地方;当 project.build.directory
属性被 profile 覆盖时,对 quarkus:dev
的修复。关于这个版本的更多细节,请参阅发布说明。
Payara 发布了 2023 年 2 月版的 Payara 平台,包括社区版 6.2023.2 和企业版 5.48.0。这两个版本均包含如下两项改进:将 MicroProfile OpenAPI 属性从 mp.openapi.scan.lib
改名为 mp.openapi.extensions.scan.lib
,这是一个破坏性的变更;使过期证书的定位和记录更加简便。社区版还包括将 EJB Timer 服务的命名空间迁移至 Jakarta Persistence 3.0。在这两个版本中,值得关注的缺陷修复包括:改进 JDK 11 和 JDK 17 上的应用部署;Asadmin CLI 工具命令的超时,start
/stop
/restart-deployment-group
;以及恢复因有问题而删除的 JobManager 接口。关于这两个版本的细节,可以在社区版发布说明和企业版发布说明中找到。
Micronaut 基金会发布了 Micronaut 3.8.5,该版本包含缺陷修复、文档改进、对 Netty 4.1.87.Final 的依赖升级以及对 Micronaut OpenAPI 和 Micronaut Oracle Cloud 的模块更新。关于这个版本的更多细节,请参阅发布说明。
Helidon 3.1.2 是一个缺陷修复版本,包括:废弃 BodyPart 接口中的 name()
和 filename()
方法,将其替换为 isNamed()
方法;修复 OIDC 退出功能;改善 Helidon Config 组件;在 Helidon 2.x 发布序列中创建一个 OpenTelemetry 规范的向后移植(backport)。
尽管 Eclipse Vert.x 3.9 的发布序列已经在 2022 年结束,但是在 2023 年将会继续提供安全更新。3.9.15 版本对 Jackson 2.14.0、Netty 4.1.89 和 Hazelcast 3.12.13 进行了升级,以解决 CVE-2022-41881、CVE-2022-41915 和 CVE-2022-36437 漏洞。关于这个版本的更多细节,请参阅发布说明。
Hibernate Search 6.2.0 的第二个 alpha 版本发布,提供了如下特性:与 Elasticsearch 8.6 和 OpenSearch 2.5 的兼容性;将 -orm6
制品升级到 Hibernate ORM 6.2.0.CR2;更简单的 and
/or
/not
断言(predicate);针对多租户的大规模索引;以及在 outbox-polling
协调策略中,将标识符切换为 UUID。
MyFaces Core 4.0.0 的第五个候选版本发布,它是 Jakarta Faces 规范的兼容实现,其特性包括:集成了 jsf.js
的下一代脚本;将所有单元测试迁移到 JUnit 5;如果 selectOne
属性没有选中的条目,则显示警告;以及更新 WebConfigParamsLogger 类中的日志。关于这个版本的更多细节,请参阅发布说明。
Grails 的 5.3.2 和 5.3.1 版本发布,由于 org.apache.maven:maven-resolver-provider
从 3.8.3 版本升级到 3.9.0 版本的 Maven 坐标问题,5.3.2 版本修补了 5.3.1 版本。否则,5.3.1 版将由依赖升级组成,包括:Micronaut 3.8.4、Grails Gradle Plugin 5.3.0、com.netflix.nebula:gradle-extra-configurations-plugin
9.0、Vue 5.0.3 和 io.methvin:directory-watcher
0.18.0。
Reactor 项目2022.0.3 是第三个维护版本,提供了对 reactor-core
3.5.3、reactor-netty
1.1.3 和 reactor-kafka
1.3.16 的依赖升级。
Micrometer Metrics 1.11.0 的第一个里程碑版本提供了新的特性,比如,支持 Azul Prime C4 垃圾收集器和 Apache HttpClient 5.x;在 Observation 接口中添加了一个新方法,observe(Function<C extends Observation.Context, T> function)
,以补充现有的 observe(Runnable runnable)
和 observe(Supplier<T> supplier)
方法。
Micrometer Tracing 1.1.0 的第一个里程碑式版本发布,其特性包括:PropagatingSenderTracingObservationHandler 和 PropagatingReceiverTracingObservationHandler 类的无操作实现;Slf4JEventListener 类的自定义 Mapped Diagnostic Context(MDC)键。
Maven 3.9.0发布,新特性包括:名为 MAVEN_ARGS
的新环境变量;允许在多个本地仓库中构建应用程序;能够在独立的本地仓库中存储快照;提供已废弃 Mojo 插件相关的警告;简化了 Maven 制品解析器的 Redis Java 客户端(Redisson)和 Hazelcast 的集成。
在经历了五个候选版本之后,Gradle 8.0发布,该版本提供了如下特性:对 Kotlin DSL 的增强,它是 Groovy DSL 的替代方案,升级到了 Kotlin 1.8 和 JDK 11;buildSrc
构建的改进;配置缓存,这是一个孵化中的新特性;以及 Java工具链的改进。关于这个版本的更多细节,请参阅发布说明,InfoQ 会跟进更详细的报道。
在 GA 发布后不久,紧随其后的补丁版本 Gradle 8.0.1 对如下问题进行了修复:以文档形式记录了 Scala 插件与工具链的集成以及 target
标记的问题;在没有事先警告和废弃通知的情况下删除了 --no-rebuild
命令行选项;以及 Scala 构建失败,且报告内容为,isBlank
不是 String
类的成员。
Piranha 23.2.0发布,该版本提供了值得注意的变更,比如,废弃 LoggingExtension 和 MimeTypeExtension 类;将 pom.xml
文件中的 debug
模块重新定位到 test
目录中;引入新的静态工具类 WarFileExtractor,用于提取 WAR 文件。关于这个版本的更多细节,请参阅其文档和问题跟踪器。
原文链接:
Java News Roundup: Gradle 8.0, Maven, Payara Platform, Piranha, Spring Framework, MyFaces, Piranha(https://www.infoq.com/news/2023/02/java-news-roundup-feb13-2023/)
相关阅读:
深入 OpenTelemetry 源代码:Java 探针的实现和二次开发 (https://www.infoq.cn/article/sLiRwa72fHzWvzC2HmKf)
Java 近期新闻:Payara Platform、Liberica JDK 更新和 JobRunr 6.0 里程碑版本 (https://www.infoq.cn/article/ploktZg0FzjPBfgMQDzy ")
声明:本文为 InfoQ 翻译,未经许可禁止转载。
点击底部阅读原文访问 InfoQ 官网,获取更多精彩内容!
Meta版ChatGPT惨遭“开源”?最新大模型LLaMA被泄露,已在GitHub收获7k+星
科大讯飞回应用“绩效回溯”变相降薪;OpenAI逆天开放API,价格打骨折;推特裁员超70%,马斯克给剩下员工“画饼”?|Q资讯
微信扫码关注该文公众号作者