Oracle 宣布了第二组将作为 Java 9 的特性交付的增强提案(称为 JEP),其中包括有关 Java 模块化的重大消息。
第一组特性是 8 月 11 日发布的,尽管也比较有用,但相对而言不那么激进。相反,这次发布了一些对 Java 开发者而言真正有料的特性。Oracle 承诺,延迟的模块化项目将作为 JDK 9 的一部分交付,Oracle 推出了 4 个 JEP ,组成了重新设计的 Java 模块化的解决方案。
Oracle 的 Java 工程团队已经交付了 JEP 162( Prepare for Modularization )和 JEP 201( Modular Source Code )。JEP 201 完全改变了 JDK 源代码的组织结构,为符合新的模块边界重新进行了安排。模块系统本身的描述包含在 JEP 200 中,不过该 JEP 尚未交付,大概是因为其细节会因具体实现时所遇到的问题而有所变化。
新的这批 JEP 包括 JEP 220( Modular Runtime Images ),这是通往模块化的一条不归路。在该 JEP 实现之后,Java 运行时系统将不再包含在 JAR 文件中,而会由模块组成。像 rt.jar 和 tools.jar 这样的文件将成为历史。新系统将仅包含模块,不过 Java 平台将继续接受和运行打包为 JAR 文件的应用程序和库。最终目标是随着时间的推移,应用程序的开发者也迁移到新的模块化格式。
Java 平台的首席架构师 Mark Reinhold 就 JRE 和 JDK 中的 Java 运行时系统评论说:“JAR 格式的使命已经完成,是时候向前推进了。”他认为,走向模块化系统,对IDE 和工具的厂商,对很多框架,都有重大影响,因为当前的内省(introspection)机制依赖于一个与遗留的JAR 格式捆绑在一起的URI 语法。外展服务项目由Oracle 的质量团队负责,London Java 社区,AdoptOpenJDK 和AdoptAJSR 项目下的全球众多Java 用户组提供了社区支持。目前已经联系了一些重要的开源项目,包括Apache 旗下的Ant、Builds、log4j、Hadoop 和CXF 等项目,以及Eclipse、Hudson、IntelliJ、RedHat Netty、Redhat Tools 和TestNG 等。
Oracle 正在准备一份 Java 规范请求(Java Specification Request,JSR),以便使模块化系统规范成为新的 Java 标准之一。
查看英文原文: Oracle Commit to Java Modularity
评论