Java 10 统一 JDK 仓库:单一代码库简化开发流程
JEP 296:整合 JDK 森林为单一仓库
JDK 9 采用多仓库(Forest)结构,包含 8 个模块仓库:
root, corba, hotspot, jaxp, jaxws, jdk, langtools, nashorn
代码组织形如:
$ROOT/jdk/src/java.base/...
$ROOT/langtools/src/java.compiler/...
Java 10 单仓库结构
合并为单一仓库,代码组织扁平化:
$ROOT/src/java.base/
$ROOT/src/java.compiler/
$ROOT/src/hotspot/...
收益
- 原子提交:跨模块变更单次提交,避免多仓库协调成本。
- 简化构建:单一源码树,构建脚本与 CI 流水线大幅简化。
- 工具友好:IDE、代码搜索、静态分析工具无需配置多根目录。
- 降低同步开销:消除仓库间同步延迟与冲突。
对外影响
对下游用户(开发者、构建工具)透明,仅影响 OpenJDK 贡献者与构建系统维护者。源码获取方式变更:
# 旧:多仓库克隆
hg clone https://hg.openjdk.java.net/jdk9/jdk9
# 新:单仓库克隆
git clone https://github.com/openjdk/jdk10u.git # 示例
java
- 理解 Java:JDK、JRE 和 JVM 详解
- 精通 Java 运算符:类型、语法与实战示例
- Java 注释:类型、用法与最佳实践
- 精通 Java 增强 for 循环:语法、示例与最佳实践
- 精通 Java 字符串:创建、方法与最佳实践
- 精通 Java 接口:概念、实现与最佳实践
- 精通 Java 匿名内部类:定义、语法与实战示例
- 精通 Java Try-With-Resources:自动资源管理详解
- Java 注解详解:类型、放置位置与实战示例
- Java 断言实战指南:尽早发现 Bug 与保障代码可靠性
- 深入理解 Java Vector:用法、特性及与 ArrayList 的对比
- Java 10 统一 JDK 仓库:单一代码库简化开发流程