1043 字
约 3 分钟
1
Maven 仓库
2026-09-19
无标签
Maven 仓库
什么是 Maven 仓库?
Maven 仓库是存储项目构件(artifacts)的地方,包括 JAR 文件、POM 文件、插件等。Maven 通过仓库来管理项目依赖和插件。
仓库类型
1. 本地仓库(Local Repository)
位于本地机器上的仓库,默认位置:~/.m2/repository
- 存储从远程仓库下载的构件
- 存储本地构建的项目构件
- 作为构建过程中的缓存
2. 中央仓库(Central Repository)
Maven 官方维护的公共仓库:https://repo1.maven.org/maven2/
- 包含大量开源项目的构件
- Maven 默认配置的仓库
- 无需额外配置即可使用
3. 远程仓库(Remote Repository)
除中央仓库外的其他网络仓库
- 私有企业仓库
- 第三方公共仓库
- 镜像仓库
仓库配置
配置本地仓库
在 settings.xml 中配置:
<settings>
<localRepository>/path/to/local/repo</localRepository>
</settings>
配置远程仓库
在 pom.xml 中配置:
<repositories>
<repository>
<id>spring-releases</id>
<name>Spring Releases</name>
<url>https://repo.spring.io/release</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
配置插件仓库
<pluginRepositories>
<pluginRepository>
<id>spring-plugins</id>
<name>Spring Plugins</name>
<url>https://repo.spring.io/plugins-release</url>
</pluginRepository>
</pluginRepositories>
镜像配置
镜像可以替代原始仓库,通常用于加速下载或企业内部管理:
配置阿里云镜像
<!-- settings.xml -->
<mirrors>
<mirror>
<id>aliyun-central</id>
<mirrorOf>central</mirrorOf>
<name>Aliyun Central</name>
<url>https://maven.aliyun.com/repository/central</url>
</mirror>
<mirror>
<id>aliyun-public</id>
<mirrorOf>*</mirrorOf>
<name>Aliyun Public</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
</mirrors>
常用国内镜像
| 镜像源 | URL | 说明 |
|---|---|---|
| 阿里云 | https://maven.aliyun.com/repository/public | 速度快,稳定性好 |
| 华为云 | https://repo.huaweicloud.com/repository/maven/ | 华为维护 |
| 腾讯云 | https://mirrors.cloud.tencent.com/nexus/repository/maven-public/ | 腾讯维护 |
仓库认证
访问私有仓库需要配置认证信息:
<!-- settings.xml -->
<servers>
<server>
<id>private-repo</id>
<username>your-username</username>
<password>your-password</password>
</server>
</servers>
<!-- pom.xml -->
<repositories>
<repository>
<id>private-repo</id>
<url>https://private.company.com/maven</url>
</repository>
</repositories>
仓库搜索顺序
- 本地仓库
- settings.xml 中配置的镜像
- POM 中配置的远程仓库
- 父 POM 中配置的仓库
- 中央仓库
部署到仓库
配置分发管理
<distributionManagement>
<repository>
<id>releases</id>
<name>Release Repository</name>
<url>https://nexus.company.com/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<name>Snapshot Repository</name>
<url>https://nexus.company.com/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
部署命令
部署到远程仓库
$ mvn deploy
仅安装到本地仓库
$ mvn install
仓库管理工具
Nexus Repository Manager
- 企业级仓库管理器
- 支持多种仓库格式
- 提供 Web 管理界面
- 支持代理、托管、组合仓库
Artifactory
- JFrog 开发的仓库管理器
- 支持多种包管理格式
- 提供高级安全功能
- 集成 CI/CD 工具
仓库最佳实践
1. 本地仓库管理
清理本地仓库
$ mvn dependency:purge-local-repository
下载源码和文档
$ mvn dependency:sources $ mvn dependency:resolve -Dclassifier=javadoc
2. 依赖分析
查看依赖树
$ mvn dependency:tree
分析依赖
$ mvn dependency:analyze
查看有效 POM
$ mvn help:effective-pom
3. 仓库配置建议
- 使用镜像:配置国内镜像加速下载
- 私有仓库:企业内部使用私有仓库管理内部构件
- 版本策略:区分 RELEASE 和 SNAPSHOT 仓库
- 安全配置:使用加密密码存储认证信息
- 备份策略:定期备份重要的仓库数据
常见问题解决
1. 依赖下载失败
解决方案:
- 检查网络连接
- 清理本地仓库缓存
- 配置镜像源
- 检查仓库配置
2. 本地仓库损坏
删除损坏的构件
$ rm -rf ~/.m2/repository/com/example/my-artifact
重新下载
$ mvn dependency:resolve
3. 版本冲突
查看依赖冲突
$ mvn dependency:tree -Dverbose
排除冲突依赖
仓库性能优化
- 并行下载:配置 Maven 并行下载依赖
- 本地缓存:合理配置本地仓库位置和大小
- 网络优化:使用就近的镜像源
- 离线模式:在网络不稳定时使用离线模式
离线模式构建
$ mvn clean install -o
强制更新快照
$ mvn clean install -U
评论
0 条
还没有评论,先写一条吧。