发布于 2016-03-12 00:54:56 | 176 次阅读 | 评论: 0 | 来源: InfoQ
JDK Java开发工具包
Java Development Kit (JDK) 是Sun公司(已被Oracle收购)针对Java开发员的软件开发工具包。自从Java推出以来,JDK已经成为使用最广泛的Java SDK(Software development kit)。
在 jdk9-dev 的邮件列表中,Alan Bateman 宣布了一个 JDK9 开发分支的快照版本,该版本包含了 Jigsaw 模块系统。同时该项目的文档中也刚更新了相关的指示进度。这是 Jigsaw 项目开始到现在首次的变化。
历史上 Java 的开发一直都是在不同的分支上做的,他们使用 Mercurial 不同的开发树。例如 Hotspot 编译器是在 Hotspot 树中开发的,而主 Java 开发是在 jdk 树中进行。这个导致的结果是结构越来越复杂,越来越大的树结构。而且 Mercurial 并非轻量级分支,因为不同分支存放在不同的仓库之中。幸运的是,这些最终变成了一个单一的 Git 仓库 —— https://github.com/dmlloyd/openjdk 。
这个变化是由于 Jigsaw 的功劳,底层包被分到不同的模块,每个包含一个或者多个包。java.base 模块包含标准的 Java 库 (java.lang
, java.util
, java.time
等 .) 当然这也的模块划分也会导致一些意外的伤亡,例如 java.beans 包用于其与 AWT 和 Applets 紧密耦合,因此被移植到了 java.desktop 模块。这意味着原来在 java.beans 包中实现了 PropertyChangeListener
接口的类都会被移除。
为了继续推进 JDK 9 类和 Jigsaw 的开发,Jigsaw 实现有其自己的森林。来自 Oracle 和 Azul Zulu 的 OpenJDK 主线 Java 构建将不包含 Jigsaw。而是推出一个特别的 Early Access 构建版本,这个版本提供了 Jigsaw 内容。
邮件显示 Oracle 尝试合并 Jigsaw 体系到 JDK9 的体系中,并且已经做了一些相应的工作,例如移除 PropertyChangeListeners 接口。automated diffs 显示 API 上没有删除操作,但包含几百项额外的变化。为了最小化产生的问题,JDK9 将两周合并一次来自 Jigsaw 的变化。希望3月21日发布的 JDK9+111 构建版本将完成最终合并。但是 Jigsaw 希望3月27日的 JDK9+112 搞定。
再往后 Jigsaw 做的变动将不会影响主流 JDK 9 的开发。在未来的某个点上 Jigsaw 将完全合并到 JDK9 中,然后 Jigsaw 项目就会宣告结束。希望今年年底能完成这个目标。