AngusRepo:企业级多格式制品仓库 | 统一管理 Maven/Docker/npm 等 28 种格式

发布时间:2026/10/18 14:59:13
AngusRepo:企业级多格式制品仓库 | 统一管理 Maven/Docker/npm 等 28 种格式 研发团队常面临这样的困境Java 项目的 JAR 包、前端的 npm 依赖、容器镜像、Helm Chart 分散在不同服务中每一种格式都需要单独配置仓库地址、访问凭据和缓存策略。内部组件靠文件传递公共依赖重复下载制品权限和安全信息难以统一管理。AngusRepo 提供统一的企业级制品仓库平台在一个系统中管理 Maven、Docker、npm、PyPI、NuGet、Helm、Go、APT、YUM、Raw以及 Alpine、Cargo、Composer、Conda、RubyGems、Swift、Terraform 等 28 种格式让制品有明确的存放位置依赖有稳定的获取入口发布和治理更容易纳入团队流程。AngusRepo 是什么AngusRepo是 AngusKit 套件中的企业级多格式制品仓库管理系统用于统一托管、代理、分发和管理软件制品。它支持 28 种主流制品格式并通过标准协议与开发者常用的构建及包管理工具无缝协作。28— 支持的制品格式3 类— 仓库类型托管/代理/聚合统一— 平台管理与安全治理对研发团队而言AngusRepo 不只是一个上传文件的地方。它连接了内部制品发布、公共依赖获取、版本分发、访问控制与安全治理等环节帮助开发、构建、部署和管理人员围绕同一套制品来源开展工作。AngusRepo 与其他方案的定位作为 AngusKit 生态的一部分AngusRepo 与 AngusGit代码仓库、AngusGM项目管理、AngusSecurity安全扫描等产品深度集成为企业提供从源代码到制品交付的完整 DevOps 工具链。相比独立部署 Nexus、Artifactory 或 HarborAngusRepo 的优势在于统一身份与权限体系与 AngusKit 其他产品共享用户、组织和权限管理原生集成无需额外配置即可与 AngusGit CI/CD、AngusSecurity 扫描等功能协作简化运维统一的部署、监控和升级流程降低多系统维护成本可选的云原生架构支持容器化部署、水平扩展和高可用配置功能架构一览下图从产品功能视角展示 AngusRepo 的完整能力体系涵盖从使用角色、客户端接入、制品格式、仓库管理、安全治理到 CI/CD 集成的全链路以及典型的制品流转场景。架构图说明架构图按功能分为四个主要区域展示 AngusRepo 的完整能力体系① 客户端与制品格式左侧 · 绿色区域图示意角色、三类仓库和制品流转。格式以正文表格的 28 种为准开发者使用熟悉的包管理器Maven、Docker CLI、npm 等和构建流水线接入所有格式通过标准协议与 AngusRepo 通信无需学习新工具② AngusRepo 核心仓库中间 · 橙色区域仓库类型HOSTED内部托管、PROXY代理缓存、GROUP聚合访问制品管理仓库创建、版本浏览、访问控制、分析审计、REST API/Webhook安全与合规漏洞扫描、许可证分析、SBOM 导出、扫描策略配置③ CI/CD 与生态协作右侧 · 紫色区域与 Jenkins、GitHub Actions、GitLab CI 等主流 CI/CD 工具无缝集成与 AngusKit 生态AngusGit、AngusAI深度协作通过 REST API 和 Webhook 连接第三方工具和自定义流程④ 典型制品流转底部 · 黄色区域公共依赖获取上游仓库 → PROXY 缓存 → GROUP 聚合 → 开发/构建拉取内部制品交付CI 构建 → HOSTED 托管 → 安全扫描 → 下游消费提示架构图支持深色模式会自动适配您的系统主题偏好。核心能力AngusRepo 能做什么1. 多格式统一管理在一个平台中管理 28 种制品格式团队可以按格式和用途规划仓库而不必为每一种包或镜像都引入独立的管理流程。所有制品使用统一的权限体系、审计日志和存储管理。2. 托管内部制品通过HOSTED托管仓库团队可以存放自己构建和发布的软件包、镜像及其他制品并按权限向开发者、CI/CD 流水线或下游环境提供访问。内部制品因此有统一、可追踪的发布位置而不必依赖临时文件或个人机器传递。典型使用场景发布内部 Java 组件库到 Maven 托管仓库推送企业应用的 Docker 镜像供测试和生产环境拉取托管团队开发的 npm 私有包供前端项目使用3. 代理和缓存公共依赖通过PROXY代理仓库AngusRepo 可以代理受支持格式的上游仓库并缓存已获取的依赖。开发与构建流程由此获得统一的依赖访问入口也能减少重复下载对外部网络的直接依赖。主要优势加速构建首次下载后本地缓存后续构建无需重复从公网获取提高稳定性降低对外部仓库可用性的依赖节省带宽团队共享缓存减少重复流量离线支持缓存的依赖可在网络受限环境使用4. 聚合多源入口GROUP聚合仓库可以按配置顺序查询多个成员仓库让客户端通过一个只读入口获取来自不同来源的制品。它尤其适合将内部制品仓库与公共依赖代理组织成统一的拉取入口。示例Maven 聚合仓库可以依次查询内部 releases、内部 snapshots 和 Maven Central 代理开发者只需配置一个仓库地址。5. 安全与合规治理AngusRepo 提供完整的制品安全治理能力访问控制基于用户、组织和项目的细粒度权限管理访问令牌支持只读、读写、特定仓库范围的令牌便于 CI/CD 集成活动审计记录所有制品的上传、下载、删除操作满足合规要求安全扫描集成 AngusSecurity 对制品进行漏洞扫描和许可证分析SBOM 生成自动生成软件物料清单Software Bill of Materials生命周期管理通过清理策略自动删除过期或不再使用的制品节省存储空间6. 与 DevOps 流程集成标准协议支持开发者继续使用 Maven、Docker CLI、npm、pip 等熟悉的工具无需学习新命令REST API完整的 API 支持自动化操作如制品查询、版本管理、仓库配置Webhook 通知制品发布、删除等事件可触发外部系统如通知测试环境自动部署CI/CD 集成与 Jenkins、GitLab CI、GitHub Actions、AngusGit CI 等无缝协作支持的制品格式与仓库类型AngusRepo 支持的 28 种格式覆盖了常见的开发语言生态、容器交付、系统软件包和通用文件。下表列出每种格式支持的仓库类型制品格式HOSTEDPROXYGROUP典型用途Maven✓✓✓Java / JVM 项目的依赖管理、内部组件发布Docker / OCI✓✓✗应用镜像托管、公共镜像代理及部署交付npm✓✓✓前端依赖管理、内部 npm 包发布PyPI✓✓✓Python 项目的依赖获取与内部包分发NuGet✓✓✓.NET 应用的依赖管理与组件发布Helm✓✓✗Kubernetes 应用的 Chart 托管和分发Go✗✓✗通过模块代理获取和缓存 Go 依赖APT✓✗✗Debian / Ubuntu.deb包托管与分发YUM✓✓✗RPM 系 Linux 环境的软件包分发Raw✓✓✗安装包、二进制文件、压缩包及其他文件Alpine✓✓✓Alpine.apkAnsible✓✓✓Ansible collectionArch✓✓✓Arch Linux 软件包Cargo✓✓✓Rust crateChef✓✓✓Chef cookbookCocoaPods✓✓✗iOS / macOS pod不能建 GROUPComposer✓✓✓PHP 包Conan✓✓✓C / C 包Conda✓✓✓Conda 包CRAN✓✓✓R 包Hugging Face✗✓✗模型与数据集只能建 PROXYOCI✓✓✓OCI 镜像与 Docker 共用/v2p2✗✓✗Eclipse p2只能建 PROXYPub✓✓✓Dart / Flutter 包RubyGems✓✓✓Ruby gemSwift✓✓✓Swift packageTerraform✓✓✓Terraform module / providerVagrant✓✓✓Vagrant box说明✓ 表示该格式支持该类型仓库✗ 表示该格式不支持该类型仓库HOSTED托管存储团队自己的制品PROXY代理缓存上游公共仓库的依赖GROUP聚合提供统一的多源查询入口仅部分格式支持这 28 种格式各自保留对应生态的使用方式。研发人员仍可使用熟悉的命令行工具和构建系统接入仓库地址、认证方式和格式专属配置则以相应的格式指南为准。查看完整格式使用指南。三类仓库如何配合AngusRepo 以三类仓库组织不同的制品流转方式。它们各自承担不同职责并非所有制品格式都同时支持三种类型。仓库类型主要职责典型用途HOSTED托管保存团队自己的制品并提供授权访问发布内部软件包、组件和镜像PROXY代理连接上游仓库并缓存获取到的依赖集中访问公共依赖减少重复下载GROUP聚合按配置顺序查询多个成员仓库提供统一的只读入口在格式支持时将内部制品与公共依赖组织成一个拉取地址以常见的 Maven 项目为例团队可以把内部正式版本放在maven-releasesHOSTED把 Maven Central 配置为maven-centralPROXY再创建maven-publicGROUP供开发者解析依赖。开发者通过统一入口拉取依赖CI/CD 则将新版本发布到对应的 HOSTED 仓库。这类分工让“从哪里获取依赖”和“向哪里发布制品”变得清楚也方便团队分别管理发布权限、依赖来源和版本策略。典型应用场景AngusRepo 解决什么问题1. 多语言团队的统一制品管理场景某互联网公司使用 Java后端、React前端、Python数据分析和 Go微服务每种语言都有自己的依赖管理方式。问题开发者需要分别配置 Maven、npm、PyPI、Go proxy 的仓库地址和凭据不同仓库的权限管理各自独立账号和令牌难以统一缺少统一的审计和监控无法全面了解制品使用情况方案使用 AngusRepo 创建对应格式的仓库统一管理所有制品。团队成员使用相同的身份体系访问不同格式的仓库管理员通过一个平台管理权限、审计日志和存储配额。2. 加速构建与提高稳定性场景某企业团队位于网络受限环境访问 Maven Central、npm Registry 等公共仓库速度慢且不稳定。问题构建时反复从公网下载依赖耗时长且容易失败多个开发者和 CI/CD 节点重复下载相同依赖浪费带宽外部仓库偶尔不可用导致构建中断方案配置 AngusRepo 的 PROXY 仓库代理上游公共仓库。首次下载后依赖被缓存在本地后续构建直接从缓存获取构建速度提升 60%且不再受外部网络影响。3. 内部组件库的规范发布场景某研发团队维护多个内部公共组件库供各业务线使用。问题组件发布靠手动复制 JAR 文件到共享目录版本管理混乱没有正式的版本号和变更记录下游项目不知道使用哪个版本缺少访问控制任何人都可以修改或删除组件方案使用 AngusRepo 的 HOSTED 仓库托管内部组件。组件库通过mvn deploy发布正式版本下游项目通过标准的依赖声明引用。配合访问令牌只有授权的 CI/CD 流水线可以发布新版本所有操作有审计记录。4. 容器镜像的集中管理场景某团队使用 Kubernetes 部署微服务需要管理大量应用镜像和基础镜像。问题应用镜像推送到 Docker Hub 公开仓库存在安全风险从 Docker Hub 拉取基础镜像速度慢且受访问限制影响缺少镜像的漏洞扫描和版本管理方案使用 AngusRepo 创建 Docker HOSTED 仓库托管应用镜像创建 Docker PROXY 仓库代理 Docker Hub。结合 AngusSecurity 对推送的镜像进行自动漏洞扫描阻止包含高危漏洞的镜像部署到生产环境。5. 符合合规要求的制品治理场景某金融企业需要满足监管要求对软件供应链进行全面审计和管理。要求记录所有制品的来源、发布者和使用情况定期扫描依赖的安全漏洞和许可证合规性生成 SBOM软件物料清单用于合规报告方案AngusRepo 记录所有制品的上传、下载、删除操作并与 AngusSecurity 集成进行漏洞扫描和许可证分析。自动生成 SBOM 文档满足合规审计需求。配置清理策略自动删除过期版本降低存储成本。各类团队的适用性团队类型主要收益中小型研发团队10-50人快速搭建私有仓库简化依赖管理减少运维负担多语言技术栈团队统一管理多种格式降低学习和配置成本微服务与容器化团队集中管理容器镜像和 Helm Chart加速部署流程企业级研发团队50人以上细粒度权限控制、审计、安全扫描满足合规要求网络受限或离线环境缓存公共依赖保证构建稳定性和速度快速开始配置接入示例Maven发布和拉取 Java 制品下面展示如何配置 Maven 项目使用 AngusRepo开发者从统一仓库入口获取依赖CI/CD 将构建产物发布到托管仓库。1. 在 AngusRepo 中创建仓库仓库名类型用途maven-releasesHOSTED存放内部正式版本maven-centralPROXY代理 Maven Centralmaven-publicGROUP为客户端提供统一的依赖拉取入口将maven-releases与maven-central加入maven-public。2. 配置 Maven 凭据在~/.m2/settings.xml中配置发布凭据。建议通过环境变量注入令牌不要把实际令牌提交到代码仓库settingsxmlnshttp://maven.apache.org/SETTINGS/1.0.0serversserveridangusrepo-releases/idusername${env.ANGUS_REPO_USERNAME}/usernamepassword${env.ANGUS_REPO_TOKEN}/password/server/servers/settings3. 配置项目依赖和发布目标在项目的pom.xml中配置repositoriesrepositoryidangusrepo-public/idurlhttps://repo.anguskit.com/maven/maven-public/url/repository/repositoriesdistributionManagementrepositoryidangusrepo-releases/idurlhttps://repo.anguskit.com/maven/maven-releases/url/repository/distributionManagement4. 发布制品mvn deploy更多配置方式请参阅 [Maven 格式手册]。Docker托管和拉取容器镜像配置 Docker 使用 AngusRepo 托管和拉取容器镜像。1. 在 AngusRepo 中创建仓库仓库名类型用途docker-hostedHOSTED存放内部应用镜像docker-hubPROXY代理 Docker Hub2. 登录到 AngusRepo Docker 仓库dockerlogin repo.anguskit.com输入用户名和访问令牌在 AngusRepo 用户设置中生成。3. 推送镜像到托管仓库# 构建镜像dockerbuild-trepo.anguskit.com/docker-hosted/myapp:1.0.0.# 推送镜像dockerpush repo.anguskit.com/docker-hosted/myapp:1.0.04. 从代理仓库拉取公共镜像# 拉取 Docker Hub 的镜像通过 AngusRepo 代理dockerpull repo.anguskit.com/docker-hub/nginx:latest5. 在 CI/CD 中使用# GitLab CI 示例stages:-build-pushbuild-image:stage:buildscript:-docker build-t $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA .-echo $ANGUS_REPO_TOKEN|docker login-u $ANGUS_REPO_USERNAME--password-stdin repo.anguskit.com-docker push repo.anguskit.com/docker-hosted/myapp:$CI_COMMIT_SHA更多配置方式请参阅 [Docker 格式手册]。npm管理前端依赖1. 配置 npm 使用 AngusRepo# 设置 npm registrynpmconfigsetregistry https://repo.anguskit.com/npm/npm-public/# 配置认证令牌npmconfigset//repo.anguskit.com/npm/:_authToken YOUR_ACCESS_TOKEN2. 安装依赖npminstall3. 发布内部包npmpublish--registryhttps://repo.anguskit.com/npm/npm-releases/更多格式的配置示例请参阅[完整格式使用指南]。常见问题Q: 如何生成访问令牌登录 AngusRepo → 用户设置 → 访问令牌 → 生成新令牌。可以指定令牌的权限范围只读/读写和有效期。Q: PROXY 仓库如何处理认证如果上游仓库需要认证如私有 Docker Registry在创建 PROXY 仓库时配置上游凭据。AngusRepo 会在请求上游时自动使用这些凭据。Q: 如何清理旧版本制品在仓库设置中配置清理策略可以按以下规则自动删除制品保留最近 N 个版本删除超过 X 天未使用的制品删除特定版本模式如 SNAPSHOT的旧版本Q: 支持匿名访问吗支持。可以在仓库设置中启用匿名读取允许未认证用户拉取制品。但发布制品始终需要认证和授权。与研发工作流协同AngusRepo 可以作为构建和交付流程中的制品入口开发阶段开发者在本地解析依赖从 PROXY 仓库获取公共依赖从 HOSTED 仓库获取内部组件构建阶段CI/CD 在构建完成后将制品发布到 HOSTED 仓库触发 Webhook 通知测试环境测试阶段测试环境从受控的仓库地址拉取对应版本的制品进行部署发布阶段生产环境从审核通过的制品版本中拉取部署所有操作有完整审计记录配合权限管理、清理策略、审计与安全治理团队更容易统一制品的流转方式并持续维护可理解、可复用的交付流程。实施建议对于已使用自动化流水线的团队可以从 Maven、npm 或 Docker 等最常用的格式开始验证基本流程后再根据项目与团队需求逐步扩展到其他格式。原文地址anguskit.com