乐闻世界logo
搜索文章和话题

Maven 仓库有哪些类型?如何配置私有仓库和镜像?

2月18日 21:34

Maven 仓库用于存储和管理构建过程中产生的各种构件(Artifacts),包括依赖、插件和项目产物。Maven 仓库分为三种类型:本地仓库、中央仓库和远程仓库。

1. 本地仓库(Local Repository):

  • 位置:默认在用户目录下的 .m2/repository 文件夹
  • 作用:存储从远程仓库下载的依赖和项目构建产物
  • 配置:在 settings.xml 中通过 <localRepository> 标签自定义位置
  • 优势:避免重复下载,提高构建速度,支持离线构建

2. 中央仓库(Central Repository):

  • URL:https://repo.maven.apache.org/maven2
  • 作用:Maven 官方维护的公共仓库,包含大量开源项目
  • 特点:无需配置即可使用,由 Maven 社区维护
  • 限制:只能上传到中央仓库的项目需要满足严格的要求

3. 远程仓库(Remote Repository):

  • 作用:企业或团队内部搭建的私有仓库,或第三方公共仓库
  • 常见实现:Nexus、Artifactory、Archiva
  • 配置方式:
xml
<repositories> <repository> <id>company-repo</id> <url>https://repo.company.com/maven2</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories>

仓库查找顺序:

  1. 本地仓库:首先查找本地是否已存在所需构件
  2. 远程仓库:按配置顺序依次查找远程仓库
  3. 中央仓库:如果远程仓库都找不到,最后查找中央仓库

镜像配置(Mirror): 镜像用于替代远程仓库,通常用于加速下载或使用企业内部仓库:

xml
<mirrors> <mirror> <id>aliyun-maven</id> <mirrorOf>central</mirrorOf> <name>Aliyun Maven Mirror</name> <url>https://maven.aliyun.com/repository/public</url> </mirror> </mirrors>

仓库认证配置: 对于需要认证的私有仓库,在 settings.xml 中配置:

xml
<servers> <server> <id>company-repo</id> <username>admin</username> <password>password</password> </server> </servers>

最佳实践:

  • 使用国内镜像加速中央仓库访问
  • 企业内部搭建私有仓库管理内部依赖
  • 区分 releases 和 snapshots 仓库,避免不稳定版本污染
  • 定期清理本地仓库,释放磁盘空间
  • 使用 mvn dependency:purge-local-repository 清理本地依赖
标签:Maven