今天在将个人的 Nexus Repository 升级到 3.69.0 版本时,意外地在管理界面发现了关于组件总数和每日请求量的使用阈值提醒。同时,版本升级日志中也明确指出了数据库即将发生的重大变更——需要从 OrientDB 迁移到 H2 或 PostgreSQL。

带着疑问查阅了官方文档后了解到,从 3.77.0 版本开始,社区版在达到使用阈值后将正式限制写入操作。而升级到 3.71.x 版本时,则必须完成数据库迁移。因此,无论是计划升级现有实例,还是新部署 Nexus,都需要仔细规划,避免服务中断。下面是相关的官方说明链接:
下面为大家系统梳理一下几个关键版本的主要变化。
一、关于社区版组件数与请求量限制的变化
这项变化主要影响 Sonatype Nexus Repository 的社区版 (OSS),其演进过程清晰反映了开发者免费资源政策的调整。

- 3.65.0 及更早版本:无任何组件数或请求数限制,也没有相关的监控与提醒。
- 3.66.0 至 3.76.1 版本:监控期。系统开始监控使用情况,当总组件数达到 10 万时会有“建议”提醒,但不会限制任何功能的使用。
- 3.77.0 版本起:正式启用限制。社区版开始强制执行限制:总组件数不得超过 10 万,每日请求数不得超过 20 万。一旦超限,会触发为期 30 天的“宽限期”。若宽限期结束后使用量仍超出限制,系统将禁止写入新组件(包括上传和代理缓存)。这对于持续集成的流水线可能会造成影响。
- 3.87.0 版本起:限制进一步收紧。社区版的免费额度调整为:总组件数上限 4 万,每日请求数上限 10 万。当任一阈值被超过时,添加新组件的操作会立即暂停,直到使用量回落到两个限制以下。这意味着对于有一定规模的项目,可能需要评估升级到专业版,或优化仓库的清理策略。
二、关于数据库变更与迁移路径
这是另一个影响深远的变更。Nexus Repository 3.x 系列长期以来默认使用内置的 OrientDB,但从 3.71.0 版本开始将彻底转向 H2 或 PostgreSQL。

关键版本节点:
- 3.71.0+ (2024年8月起):仅支持 H2 或 PostgreSQL。OrientDB 被完全移除,无法再使用。同时,该版本强制要求 Java 17 运行环境。
- 3.70.x (2024年7月):最后一个兼容 OrientDB 的版本。此版本线中,H2 数据库引擎从 1.4.200 升级到了 2.2.244。如果你计划使用 H2,必须在升级到 3.70.x 之前,先在 3.69.0 版本中导出 H2 的 SQL 脚本。
- 3.69.0 (2024年6月):提供了 H2 数据库 SQL 导出工具。这个工具专门用于为后续 3.70.0+ 版本的 H2 数据库升级做准备。
- 3.61.0+ (2024年1月起):开始推荐并支持 H2/PostgreSQL,OrientDB 进入淘汰倒计时阶段。
- 3.0.0 – 3.60.x:默认且唯一的数据库为嵌入式 OrientDB。
关键变更与升级要点:
- 从 3.70.x 升级到 3.71.0+:必须先完成从 OrientDB 到 H2 的迁移,否则实例将无法启动。请注意,3.70.4 是 3.70.x 系列的最后一个版本。
- 从 3.69.x 升级到 3.70.x:如果你使用 H2 数据库,需要先在 3.69.0 版本中导出 SQL 脚本,然后在 3.70.x 版本中导入并完成升级。
- 从 3.68.x 或更早版本升级:你需要先升级到 3.69.0 这个“中转站”版本,然后再按上述步骤进行处理。
迁移路径速览:
- 3.68 及更早版本 → 首先升级到 3.69.0。
- 3.69.0 → 导出 H2 SQL 脚本(如果使用 H2),或为 OrientDB 迁移做好准备。
- 升级到 3.70.x → 执行 OrientDB → H2 迁移(如果是 H2 路径)。
- 迁移完成后 → 安全地升级到 3.71.0+ 及更高版本。
总的来说,对于仍在运行较旧版本 Nexus 的用户,尤其是使用社区版且仓库组件量较大的团队,现在就需要开始规划升级和迁移事宜了。数据库迁移路径稍显复杂,但按官方步骤操作是安全可靠的。关注这些变化,能帮助你的制品库管理更顺畅。如果你想和其他开发者交流此类运维经验,可以到 云栈社区 的 运维/DevOps板块 参与讨论。
|