Maven之仓库
1. 什么是仓库
Maven仓库是项目中依赖的第三方库,这个库所在的位置叫做仓库。
Maven仓库能帮助我们管理构建
2. 仓库类型

1. 本地仓库
Maven的本地仓库,在安装maven后并不会创建,它是在第一次执行maven命令的时候才被创建。
运行maven的时候,maven所需要的任何构件都是直接从本地仓库获取的。如果本地仓库没有,它会尝试从远程仓库下载构件至本地仓库,然后再使用本地仓库的构件。
默认情况下,每个用户在自己的家目录下都有一个.m2/repository的仓库目录。
可以通过修改maven的settings.xml文件定义另一个路径
清理本地仓库:
mvn dependency:purge-local-repository 或者手动删除.m2/repository目录
2. 中央仓库
Maven 中央仓库是由 Maven 社区提供的仓库,其中包含了大量常用的库。
中央仓库包含了绝大多数流行的开源 Java 构件,以及源码、作者信息、SCM、信息、许可证信息等。一般来说,简单的 Java 项目依赖的构件都可以在这里下载到。
中央仓库的关键概念:
1. 这个仓库由Maven社区管理
2. 不需要配置
3. 需要通过网络才能访问
中央仓库默认地址: https://repo.maven.apache.org/maven2/
3. 远程仓库
1. 阿里云仓库
<mirror> <id>aliyunmaven</id> <mirrorOf>*</mirrorOf> <name>阿里云公共仓库</name> <url>https://maven.aliyun.com/repository/public</url> </mirror>
2. 私服仓库

发布到私服
1. 在pom.xml中配置
<distributionManagement>
<repository>
<id>nexus-releases</id>
<url>http://your-nexus/repository/maven-releases</url>
</repository>
<snapshotRepository>
<id>nexus-snapshots</id>
<url>http://your-nexus/repository/maven-snapshots</url>
</snapshotRepository>
</distributionManagement>
2. 在settings.xml配置认证
<servers>
<server>
<id>nexus-releases</id>
<username>deploy-user</username>
<password>deploy-pwd</password>
</server>
</servers>
3. Maven依赖搜索顺序
1. 在本地仓库中搜索,如果找不到,执行步骤2,如果找到了则执行其他操作。
2. 在中央仓库中搜索,如果找不到,并且有一个或多个仓库已经设置,则执行步骤4,如果找到了则下载到本地仓库中以备将来引用。
3. 如果远程仓库没有被设置,停滞处理并抛出错误。
4. 在一个或多个远程仓库中搜索依赖的文件,如果找到则下载到本地仓库以备将来引用,否则Maven将停止处理并抛出错误。
4. 常见错误
1. 依赖下载失败现象
could not transfer artifact
解决:
检查网络连接
验证仓库URL是否正确
临时关闭防火墙
2. 认证失败现象:401 Unauthorized
解决:
检查settings.xml中的<server>配置
确认用户名密码是否有仓库访问权限
3. 依赖冲突
排查:mvn dependency:tree -Dverbose
解决:在 <dependencyManagement> 中统一版本

浙公网安备 33010602011771号