Maven

全局配置

修改 Maven 默认的全局配置文件:

  • 类 Unix 系统: Mac OS / Linux 默认在 ~/.m2/settings.xml
  • Windows 系统:一般在 Maven 安装目录的 conf/settings.xml
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> <!-- 添加以下这段 Mirror 配置 -->
<mirrors>
<!-- Aliyun -->
<mirror>
<id>aliyunmaven</id>
<name>aliyun maven</name>
<mirrorOf>*</mirrorOf>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
</mirrors> </settings>

单项目配置

修改项目的 pom.xml,添加以下内容:

<repositories>
<repository>
<id>aliyunmaven</id>
<url>https://maven.aliyun.com/repository/public</url>
</repository>
</repositories>

Gradle

全局配置

在 ${USER_HOME}/.gradle/ 目录下创建 init.gradle 文件,添加以下内容:

allprojects {
repositories {
def ALIYUN_REPOSITORY_URL = 'https://maven.aliyun.com/repository/public'
all { ArtifactRepository repo ->
if(repo instanceof MavenArtifactRepository){
def url = repo.url.toString()
if (url.startsWith('https://repo1.maven.org/maven2')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_REPOSITORY_URL."
remove repo
}
}
}
maven { url ALIYUN_REPOSITORY_URL }
}
}

单项目配置

修改项目的 build.gradle 文件,添加以下内容:

buildscript {
repositories {
maven { url 'https://maven.aliyun.com/repository/public' }
}
} allprojects {
repositories {
maven { url 'https://maven.aliyun.com/repository/public' }
}
}

也可以直接添加在 repositories 内:

repositories {
maven { url 'https://maven.aliyun.com/repository/public' }
mavenCentral()
}

其他仓库

在上面的配置中,我们主要配置的是 public 仓库,而 阿里云: https://maven.aliyun.com 除此之外,还代理了许多其他的仓库,可作为下载源。如 google、spring 等(更多可点进链接查看详情)。

而我们常用的 public 仓库,其实是 central: https://repo1.maven.org/maven2/ 仓库和 jcenter: http://jcenter.bintray.com/ 仓库的聚合,所以配置了 public 仓库,就不需要再配置 jcenter 的仓库了。

若需要使用其他的代理仓库,如 google、spring,可参考以下配置:

Maven

全局配置

同上,修改 settings.xml 文件:

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> <mirrors>
<!-- Aliyun -->
<mirror>
<id>alimaven-public</id>
<name>aliyun public maven repo</name>
<url>https://maven.aliyun.com/repository/public</url>
<mirrorOf>*</mirrorOf>
</mirror> <mirror>
<id>alimaven-google</id>
<name>aliyun google maven repo</name>
<url>https://maven.aliyun.com/repository/google</url>
<mirrorOf>*</mirrorOf>
</mirror> <mirror>
<id>alimaven-spring</id>
<name>aliyun spring maven repo</name>
<url>https://maven.aliyun.com/repository/spring</url>
<mirrorOf>*</mirrorOf>
</mirror> <!-- Tencent Cloud -->
<!-- <mirror>
<id>nexus-tencentyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus tencentyun</name>
<url>http://mirrors.cloud.tencent.com/nexus/repository/maven-public/</url>
</mirror> --> <!-- Netease 163 -->
<!-- <mirror>
<id>netease</id>
<mirrorOf>*</mirrorOf>
<name>Netease maven</name>
<url>http://mirrors.163.com/maven/repository/maven-public/</url>
</mirror> -->
</mirrors> </settings>

单项目配置

修改 pom.xml:

<repositories>
<repository>
<id>aliyunmaven-google</id>
<name>aliyun google maven repo</name>
<url>https://maven.aliyun.com/repository/google</url>
<layout>default</layout>
<!-- 是否开启 release 版构件下载 -->
<releases>
<enabled>true</enabled>
</releases>
<!-- 是否开启 snapshot 版构件下载 -->
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>aliyunmaven-spring</id>
<name>aliyun spring maven repo</name>
<url>https://maven.aliyun.com/repository/spring</url>
</repository>
</repositories>

是否开启 releases、snapshots 版下载可根据自身需求调整。

Gradle

全局配置

allprojects {
repositories {
def ALIYUN_REPOSITORY_URL = 'https://maven.aliyun.com/repository/public'
def ALIYUN_GOOGLE_URL = 'https://maven.aliyun.com/repository/google'
all { ArtifactRepository repo ->
if(repo instanceof MavenArtifactRepository){
def url = repo.url.toString()
if (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_REPOSITORY_URL."
remove repo
}
if (url.startsWith('https://dl.google.com/dl/android/maven2')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_GOOGLE_URL."
remove repo
}
}
}
maven { url ALIYUN_REPOSITORY_URL }
maven { url ALIYUN_GOOGLE_URL }
}
}

单项目配置

修改 `build.gradle`:

buildscript {
repositories {
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/spring' }
}
} allprojects {
repositories {
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/spring' }
}
}

其他镜像源

腾讯云

https://mirrors.cloud.tencent.com

参考配置:

Maven

 <mirror>
<id>nexus-tencentyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus tencentyun</name>
<url>http://mirrors.cloud.tencent.com/nexus/repository/maven-public/</url>
</mirror>
<repositories>
<repository>
<id>nexus-tencentyun</id>
<name>Nexus tencentyun</name>
<url>http://mirrors.cloud.tencent.com/nexus/repository/maven-public/</url>
</repository>
</repositories>

Gradle

buildscript {
repositories {
maven { url 'http://mirrors.cloud.tencent.com/nexus/repository/maven-public/' }
}
} allprojects {
repositories {
maven { url 'http://mirrors.cloud.tencent.com/nexus/repository/maven-public/' }
}
}

FAQ

Q: 为什么你配置里用的 URL 都是 https://maven.aliyun.com/repository/public,而我看其他的人/文章,都用的是 http://maven.aliyun.com/nexus/content/groups/public 呢?

A: 阿里云在前几年对 https://maven.aliyun.com 进行了代码和架构上的改造,新版的 https://maven.aliyun.com 下载速度更快,支持高并发,而且全站进行了 HTTPS 加密,更安全。而新版的 Maven Mirror 地址,就是 https://maven.aliyun.com/repository/{reponame},然而阿里云为了保持旧地址的兼容,所以旧地址依然可以使用,但推荐使用新地址。

更多详情可参考: https://yq.aliyun.com/articles/621196?commentId=21341

最新文章

  1. VTK初学一,比较常见的错误2
  2. JS—实现拖拽
  3. Java中值传递和引用传递的概念
  4. linux中的进程和线程
  5. Windows Azure支持七层负载均衡--Application Gateway
  6. 【转载】VC维的来龙去脉
  7. canvas游戏小试:画一个按方向键移动的圆点
  8. android 一个简单的服务例子
  9. 甲骨文白桃花心木P6 EPPM 8.2项目点提供样本
  10. iOS中model出来一个控制器的尺寸怎么设置?
  11. bzoj 2242: [SDOI2011]计算器 BSGS+快速幂+扩展欧几里德
  12. 网络延迟查看器 Network latency view 1.4
  13. 自定义JSP标签实现语言国际化(类似struts text标签),并同时支持图片、JS文件国际化
  14. Java 实现二分(折半)插入排序
  15. Redis(2015.08.03笔记一)
  16. nginx视频直播/点播服务干货分享
  17. Stimulsoft报表操作笔记(一):统计
  18. http协议中:GET/POST/PUT/DELETE/TRACE/OPTIONS/HEAD方法
  19. Django rest framework 使用haystack对接Elasticsearch
  20. css实现气泡框效果

热门文章

  1. 2018 ICPC Pacific Northwest Regional Contest I-Inversions 题解
  2. java制作一个简单的抽签程序
  3. Springboot中,Tomcat启动war包的流程
  4. CSS开发技巧(四):解决flex多行布局的行间距异常、子元素高度拉伸问题
  5. 《Exchange Server 2010 SP1/SP2管理实践》——第2章 搭建Exchange实验环境2.1 网络环境规划...
  6. 发布AI芯片昆仑和百度大脑3.0、L4自动驾驶巴士量产下线,这是百度All in AI一年后的最新答卷...
  7. ASP.NET Core3.x 基础—注册服务(2)
  8. Scrapy+selenium爬取简书全站
  9. Qt之connect
  10. docker环境中neo4j导入导出