Maven 配置本地仓库和阿里中央仓库
设置 Maven 远程仓库为阿里云提供的仓库,以便国内快速稳定下载依赖。阿里云 Maven 仓库代理了很多公共的 maven 仓库。
阿里云 Maven 仓库,阿里云 Maven 公共代理库,新版maven.aliyun.com答疑。
中央仓库
Maven 默认使用 Apache 仓库,地址:https://repo.maven.apache.org/maven2 ,即当 maven 的配置文件 settings.xml 里的 <mirrors>
标签内容为空时使用。
远程中央仓库有:
- Apache 仓库:https://repo.maven.apache.org/maven2
- Maven 中央仓库:http://central.maven.org/maven2/
- Maven repo1 仓库:https://repo1.maven.org/maven2/
- Spring 仓库:http://repo.spring.io/libs-milestone/
阿里仓库
设置仓库
阿里 Maven 仓库进行了改版,但与旧版兼容,旧的仓库地址仍可继续使用。
编辑 maven 配置文件 settings.xml,找到
localRepository
标签,设置本地仓库地址。1
<localRepository>D:\Maven\repository</localRepository>
添加仓库镜像源
打开 maven 的配置文件(一般在 maven 安装目录的 conf/settings.xml),在
<mirrors></mirrors>
标签中添加 mirror 子节点:1
2
3
4
5
6<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>public</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
旧仓库地址
1 | <mirror> |
新仓库地址
1 | <mirror> |
依赖包问题
commons-logging-1.2.jar 包 SHA1 校验不通过问题
新装了一台 Ubuntu 服务器,安装 Maven 后,配置了 阿里中央仓库,Maven 打包项目,全新下载所有依赖。
1
2
3
4
5
6
7
8
9
10
11
12
13
14使用 central 仓库,地址:https://maven.aliyun.com/repository/central ,在 Ubuntu 下执行 mvn 命令打包,安装依赖时报 commons-logging-1.2 包的 SHA1 校验不通过,mvn 命令从该仓库下载的包与 Maven 中央仓库不一致。在使用 spring-boot-maven-plugin 打成镜像时直接报异常:
[WARNING] Checksum validation failed, expected 4bfc12adfe4842bf07b657f0369c4cb522955686 but is 90a941b7b28fba6827b7810b8098b4abf54c196a from central repo for https://maven.aliyun.com/repository/central/commons-logging/commons-logging/1.2/commons-logging-1.2.jar
[WARNING] Could not validate integrity of download from https://maven.aliyun.com/repository/central/commons-logging/commons-logging/1.2/commons-logging-1.2.jar: Checksum validation failed, expected 4bfc12adfe4842bf07b657f0369c4cb522955686 but is 90a941b7b28fba6827b7810b8098b4abf54c196a
[WARNING] Checksum validation failed, expected 4bfc12adfe4842bf07b657f0369c4cb522955686 but is 90a941b7b28fba6827b7810b8098b4abf54c196a from central repo for https://maven.aliyun.com/repository/central/commons-logging/commons-logging/1.2/commons-logging-1.2.jar
Downloaded from central repo: https://maven.aliyun.com/repository/central/commons-logging/commons-logging/1.2/commons-logging-1.2.jar (2.6 MB at 72 kB/s)
Failed to execute goal com.spotify:docker-maven-plugin:0.4.13:build (default) on project wd-daoliu-admin: Execution default of goal com.spotify:docker-maven-plugin:0.4.13:build failed: A required class was missing while executing com.spotify:docker-maven-plugin:0.4.13:build: org/apache/commons/logging/LogFactory
阿里 central 仓库下载的 commons-logging-1.2.jar 是 2502 KB,而 Maven 中央仓库该包是 61 KB,但两个目录里的 SHA1 文件里的值是一致的 4bfc12adfe4842bf07b657f0369c4cb522955686
经对比测试,初步确定是 阿里 central 仓库该包的问题,更换 apache 和 maven 中央仓库都正常。
注意:是执行 mvn 命令下载的包出现了该问题。从页面找到该包下载,又是正确的(大小、SHA1一致)
Maven 配置本地仓库和阿里中央仓库
http://blog.gxitsky.com/2018/01/17/Maven-Repository-Config-Ali/