当前位置:   article > 正文

Maven、Gradle 配置国内镜像源_gradle配置国内源

gradle配置国内源

一、阿里云

1. Maven

全局配置

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

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

单项目配置

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

  1. <repositories>
  2. <repository>
  3. <id>aliyunmaven</id>
  4. <url>https://maven.aliyun.com/repository/public</url>
  5. </repository>
  6. </repositories>

Gradle

全局配置

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

  1. allprojects {
  2. repositories {
  3. def ALIYUN_REPOSITORY_URL = 'https://maven.aliyun.com/repository/public'
  4. all { ArtifactRepository repo ->
  5. if(repo instanceof MavenArtifactRepository){
  6. def url = repo.url.toString()
  7. if (url.startsWith('https://repo1.maven.org/maven2')) {
  8. project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_REPOSITORY_URL."
  9. remove repo
  10. }
  11. }
  12. }
  13. maven { url ALIYUN_REPOSITORY_URL }
  14. }
  15. }

单项目配置

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

  1. buildscript {
  2. repositories {
  3. maven { url 'https://maven.aliyun.com/repository/public' }
  4. }
  5. }
  6. allprojects {
  7. repositories {
  8. maven { url 'https://maven.aliyun.com/repository/public' }
  9. }
  10. }

也可以直接添加在 repositories 内:

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


二、其他仓库

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

而我们常用的 public 仓库,其实是 central 仓库和 jcenter 仓库的聚合,所以配置了 public 仓库,就不需要再配置 jcenter 的仓库了。

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

1. Maven

全局配置

同上,修改 settings.xml 文件:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
  5. <mirrors>
  6. <!-- Aliyun -->
  7. <mirror>
  8. <id>alimaven-public</id>
  9. <name>aliyun public maven repo</name>
  10. <url>https://maven.aliyun.com/repository/public</url>
  11. <mirrorOf>*</mirrorOf>
  12. </mirror>
  13. <mirror>
  14. <id>alimaven-google</id>
  15. <name>aliyun google maven repo</name>
  16. <url>https://maven.aliyun.com/repository/google</url>
  17. <mirrorOf>*</mirrorOf>
  18. </mirror>
  19. <mirror>
  20. <id>alimaven-spring</id>
  21. <name>aliyun spring maven repo</name>
  22. <url>https://maven.aliyun.com/repository/spring</url>
  23. <mirrorOf>*</mirrorOf>
  24. </mirror>
  25. <!-- Tencent Cloud -->
  26. <!-- <mirror>
  27. <id>nexus-tencentyun</id>
  28. <mirrorOf>*</mirrorOf>
  29. <name>Nexus tencentyun</name>
  30. <url>http://mirrors.cloud.tencent.com/nexus/repository/maven-public/</url>
  31. </mirror> -->
  32. <!-- Netease 163 -->
  33. <!-- <mirror>
  34. <id>netease</id>
  35. <mirrorOf>*</mirrorOf>
  36. <name>Netease maven</name>
  37. <url>http://mirrors.163.com/maven/repository/maven-public/</url>
  38. </mirror> -->
  39. </mirrors>
  40. </settings>

单项目配置

修改 pom.xml

  1. <repositories>
  2. <repository>
  3. <id>aliyunmaven-google</id>
  4. <name>aliyun google maven repo</name>
  5. <url>https://maven.aliyun.com/repository/google</url>
  6. <layout>default</layout>
  7. <!-- 是否开启 release 版构件下载 -->
  8. <releases>
  9. <enabled>true</enabled>
  10. </releases>
  11. <!-- 是否开启 snapshot 版构件下载 -->
  12. <snapshots>
  13. <enabled>false</enabled>
  14. </snapshots>
  15. </repository>
  16. <repository>
  17. <id>aliyunmaven-spring</id>
  18. <name>aliyun spring maven repo</name>
  19. <url>https://maven.aliyun.com/repository/spring</url>
  20. </repository>
  21. </repositories>

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

2. Gradle

全局配置

  1. allprojects {
  2. repositories {
  3. def ALIYUN_REPOSITORY_URL = 'https://maven.aliyun.com/repository/public'
  4. def ALIYUN_GOOGLE_URL = 'https://maven.aliyun.com/repository/google'
  5. all { ArtifactRepository repo ->
  6. if(repo instanceof MavenArtifactRepository){
  7. def url = repo.url.toString()
  8. if (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com')) {
  9. project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_REPOSITORY_URL."
  10. remove repo
  11. }
  12. if (url.startsWith('https://dl.google.com/dl/android/maven2')) {
  13. project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_GOOGLE_URL."
  14. remove repo
  15. }
  16. }
  17. }
  18. maven { url ALIYUN_REPOSITORY_URL }
  19. maven { url ALIYUN_GOOGLE_URL }
  20. }
  21. }

单项目配置

修改 build.gradle

  1. buildscript {
  2. repositories {
  3. maven { url 'https://maven.aliyun.com/repository/google' }
  4. maven { url 'https://maven.aliyun.com/repository/spring' }
  5. }
  6. }
  7. allprojects {
  8. repositories {
  9. maven { url 'https://maven.aliyun.com/repository/google' }
  10. maven { url 'https://maven.aliyun.com/repository/spring' }
  11. }
  12. }


三、其他镜像源

腾讯云

https://mirrors.cloud.tencent.com

参考配置:

Maven

  1. <mirror>
  2. <id>nexus-tencentyun</id>
  3. <mirrorOf>*</mirrorOf>
  4. <name>Nexus tencentyun</name>
  5. <url>http://mirrors.cloud.tencent.com/nexus/repository/maven-public/</url>
  6. </mirror>
  1. <repositories>
  2. <repository>
  3. <id>nexus-tencentyun</id>
  4. <name>Nexus tencentyun</name>
  5. <url>http://mirrors.cloud.tencent.com/nexus/repository/maven-public/</url>
  6. </repository>
  7. </repositories>

Gradle

  1. buildscript {
  2. repositories {
  3. maven { url 'http://mirrors.cloud.tencent.com/nexus/repository/maven-public/' }
  4. }
  5. }
  6. allprojects {
  7. repositories {
  8. maven { url 'http://mirrors.cloud.tencent.com/nexus/repository/maven-public/' }
  9. }
  10. }

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},然而阿里云为了保持旧地址的兼容,所以旧地址依然可以使用,但推荐使用新地址。

更多详情可参考: 【FAQ】新版 maven.aliyun.com 答疑

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/87393
推荐阅读
相关标签