在团队开发中,Maven 私服几乎是 Java 工程的基础设施标配。 kkRepo 是一个开源的自托管制品仓库,支持 Maven 、npm 、PyPI 、Go 、Helm 、Docker/OCI 等多种制品格式。
kkRepo 项目地址
一、快速启动 kkRepo
本地体验可以直接使用官方 quickstart 脚本,它会拉起 kkRepo 和 MySQL:
curl -fsSL https://raw.githubusercontent.com/klboke/kkrepo/main/scripts/quickstart.sh | bash 启动完成后访问:
- 管理控制台: http://127.0.0.1:19090/admin/
- 用户侧浏览器: http://127.0.0.1:19090/browse/
- 健康检查: http://127.0.0.1:19091/actuator/health
首次进入管理控制台时,需要创建初始 Local/admin 管理员密码。
二、创建 Maven 仓库
进入 /admin/ 后,建议按 Maven 常见用法创建三类仓库:
- maven-releases hosted ,用于发布正式版本
- maven-snapshots hosted ,用于发布 SNAPSHOT 版本
- maven-central proxy ,用于代理 Maven Central
- maven-public group ,用于依赖拉取入口
创建 maven-central proxy 仓库时,上游地址可以填写 Maven Central 的官方仓库地址:
如果公司已有内网 Maven 镜像,也可以把 proxy 的上游地址替换成内部镜像地址。
创建 maven-public group 仓库时,把下面几个成员仓库加入 group:
- maven-releases 、maven-snapshots 、maven-central
这样客户端只需要从 maven-public 一个地址拉依赖:公司内部发布到私服的包会从 maven-releases 或 maven-snapshots 命中,第三方开源依赖会通过 maven-central proxy 回源并缓存。发布时仍然分别写入 maven-releases 或 maven-snapshots 。
