一、选取最优的国内镜像
Maven是使用Apache Maven官方仓库来下载依赖库的,然而随着Maven的使用越来越广泛,对于官方仓库的请求量也越来越大,导致下载速度变慢。因此,国内很多大型IT公司和组织都提供了Maven的国内镜像,利用镜像可以提高Maven的依赖库下载速度。
但是,不同的镜像之间下载速度也存在差异。在选取最优的国内镜像时,可以使用一些工具来测试各个镜像的下载速度,比如使用maven-repository-list工具。
git clone https://github.com/kbastani/maven-repository-list.git
cd maven-repository-list
mvn package
java -jar target/max-repository-list-0.0.1.jar
使用该工具就能输出各种Maven镜像的下载速度,从而选择最优的镜像。使用教程请见此处。
二、配置Maven使用国内镜像
选定最优的镜像后,需要修改Maven的配置文件使其使用镜像。Maven有两个配置文件可供使用:一个是全局配置文件(settings.xml),通常位于{user.home}/.m2/ 目录下;另一个是局部配置文件,位于每个项目的根目录下的 .mvn 目录中。
修改全局配置文件可以让所有Maven项目共用一套配置,因此建议修改全局配置文件。进入Maven的安装目录,找到conf/settings.xml文件,将其备份后打开,将以下内容加入到
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
其中,<mirrorOf>*</mirrorOf>表示将所有仓库的请求都转发到该镜像地址。
三、使用阿里云的Maven镜像
阿里云提供了丰富的Maven镜像,不仅支持公共镜像,还提供了阿里云内网的镜像服务,用户可以将阿里云的Maven镜像配置在settings.xml文件中,以提高构建效率。
阿里云Maven镜像中央仓库的地址为:
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>https://maven.aliyun.com/repository/central</url>
</mirror>
阿里云Maven私服的地址为:
<mirror>
<id>nexus-aliyun-p2p</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun p2p</name>
<url>https://maven.aliyun.com/repository/aliyunmaven/</url>
</mirror>
四、使用华为云的Maven镜像
除了阿里云,华为云也提供了Maven镜像,使用方法与阿里云类似,在settings.xml文件中添加以下内容:
华为云Maven公共镜像中央仓库的地址为:
<mirror>
<id>maven-huawei</id>
<mirrorOf>*</mirrorOf>
<name>Nexus huawei</name>
<url>https://mirrors.huaweicloud.com/repository/maven-central/</url>
</mirror>
华为云Maven私服的地址为:
<mirror>
<id>maven-huawei-p2p</id>
<mirrorOf>*</mirrorOf>
<name>Nexus huawei p2p</name>
<url>https://mirrors.huaweicloud.com/repository/maven/</url>
</mirror>
五、使用清华大学的Maven镜像
清华大学也提供了丰富的Maven镜像,支持公共镜像和私服镜像。在settings.xml文件中添加以下内容即可:
清华大学Maven公共镜像中央仓库的地址为:
<mirror>
<id>maven-tuna</id>
<mirrorOf>*</mirrorOf>
<name>Nexus tuna</name>
<url>https://mirrors.tuna.tsinghua.edu.cn/repository/maven-central/</url>
</mirror>
清华大学Maven私服的地址为:
<mirror>
<id>maven-tuna-p2p</id>
<mirrorOf>*</mirrorOf>
<name>Nexus tuna p2p</name>
<url>https://mirrors.tuna.tsinghua.edu.cn/repository/maven/</url>
</mirror>