当前位置: 首页 > wzjs >正文

国企网站建设东莞高森网络营销

国企网站建设,东莞高森网络营销,深圳展示型网站建设,国家征信系统查询官网阿里云云效 Maven 官网:https://developer.aliyun.com/mvn/guide 阿里云Maven中央仓库为 阿里云云效 提供的公共代理仓库,帮助研发人员提高研发生产效率,使用阿里云Maven中央仓库作为下载源,速度更快更稳定。 阿里云云效 是企业…

阿里云云效 Maven

官网:https://developer.aliyun.com/mvn/guide

阿里云Maven中央仓库为 阿里云云效 提供的公共代理仓库,帮助研发人员提高研发生产效率,使用阿里云Maven中央仓库作为下载源,速度更快更稳定。

阿里云云效 是企业级一站式 DevOps 平台,覆盖产品从需求到运营的研发全生命周期,其中云效也提供了免费、可靠的Maven私有仓库 Packages 和代码管理仓库 Codeup,欢迎您体验使用。

云效制品仓库 Packages 致力于帮助开发者统一管理各种开发语言在开发、构建过程中的依赖,构建成果(二进制制品)以及交付过程关键信息的重要组件。

云效代码管理 Codeup 是阿里云出品的一款企业级代码管理平台,提供代码托管、代码评审、代码扫描、代码度量等功能,不限人数、超大容量且免费使用,全方位保护代码资产,帮助团队实现安全、稳定、高效的研发管理。

仓库名称阿里云仓库地址阿里云仓库地址(老版)源地址
centralhttps://maven.aliyun.com/repository/centralhttps://maven.aliyun.com/nexus/content/repositories/centralhttps://repo1.maven.org/maven2/
publichttps://maven.aliyun.com/repository/publichttps://maven.aliyun.com/nexus/content/groups/publiccentral仓和jcenter仓的聚合仓
gradle-pluginhttps://maven.aliyun.com/repository/gradle-pluginhttps://maven.aliyun.com/nexus/content/repositories/gradle-pluginhttps://plugins.gradle.org/m2/
apache snapshotshttps://maven.aliyun.com/repository/apache-snapshotshttps://maven.aliyun.com/nexus/content/repositories/apache-snapshotshttps://repository.apache.org/snapshots/

如上面的表格,列出了阿里仓库的新地址和老版本的地址,平时我们使用新地址即可,老版本的地址也是可以使用的,比如有些依赖在新地址中可能下载不到,但是在老版本的地址中可能还能下载到,特别是一些版本比较旧的依赖。

从老版本地址中的nexus可以看出,它也是用的Nexus Repository OSS,所以阿里云镜像加速的原理和Nexus Repository OSS是一样的,当阿里云收到依赖请求时,它会把请求转发给原始仓库,比如google()仓库,下载到依赖后缓存起来,下次再有相同的依赖请求时直接返回缓存即可,这就是加速的原理。

这个表格没有列完整,在https://developer.aliyun.com/mvn/view中有更多的仓库地址,当你发现一个很少见的仓库地址时,可以到这里看看有没有对应的镜像地址。这个页面中,可以看到central仓库的类型是proxy,而public的类型是group,如下:
在这里插入图片描述

这和Nexus Repository OSS私服仓库中的概念是一样一样的。public仓库其实是一个组,把多个仓库组合起来,它把jcentercentral组合到一起。

Android项目默认使用的Maven仓库都有哪些?

在Android中如何使用阿里云效Maven呢?首先我们新创建一个Android项目看看默认的仓库地址有哪些,当前是2025年3月27日,使用最新版本Android Studio创建项目时的依赖仓库配置如下:

pluginManagement {repositories {google {content {includeGroupByRegex("com\\.android.*")includeGroupByRegex("com\\.google.*")includeGroupByRegex("androidx.*")}}mavenCentral()gradlePluginPortal()}
}
dependencyResolutionManagement {repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)repositories {google()mavenCentral()}
}

可以看到google()mavenCentral()即可用在第三方库依赖的地方也可以用到插件的地方,这说明maven仓库即可上传普通的第三方库,也可以上传插件。而gradlePluginPortal()仓库的名字,很明显它只用于存储插件。

可以在 mavenCentral()的后面添加如下代码打印出对应的仓库地址:

// 打印插件仓库地址
println("Plugin Repositories:")
repositories.forEach {println("- ${(it as? MavenArtifactRepository)?.url ?: it.name}")
}

同步一下gradle,可在Build面板看到打印的仓库地址,如下:
在这里插入图片描述
网上还有文章说google()mavenCentral()的地址如下:

  • https://maven.google.com/
  • https://repo1.maven.org/maven2/

这和我打印的不一样,不知道是后面发生变化了,还是地址可以有多个?

这三个仓库的地址及阿里云镜像地址如下:

仓库别名官方地址阿里云镜像地址
google()https://dl.google.com/dl/android/maven2/https://maven.aliyun.com/repository/google
mavenCentral()https://repo.maven.apache.org/maven2/https://maven.aliyun.com/repository/public
gradlePluginPortal()https://plugins.gradle.org/m2https://maven.aliyun.com/repository/gradle-plugin

完美的依赖配置

有了前面的知识后,修改Android的依赖仓库就比较简单了,如下:

pluginManagement {repositories {// google()仓库的的阿里云镜像替代maven {url = uri("https://maven.aliyun.com/repository/google")content {includeGroupByRegex("com\\.android.*")includeGroupByRegex("com\\.google.*")includeGroupByRegex("androidx.*")}}// mavenCentral()仓库的阿里云镜像替代(同时包含jcenter()仓库)jmaven {url = uri("https://maven.aliyun.com/repository/public")}// gradlePluginPortal() 仓库的阿里云镜像替代maven {url = uri("https://maven.aliyun.com/repository/gradle-plugin")}// 备用官方仓库google { // android 官方插件content {// 下面表示仅过滤以下面这些包含开头的插件(估计Android官方插件都是以这些开头)// 依赖地址通常由 ​Group ID、Artifact ID 和 ​Version 三部分组成:groupId:artifactId:version// “\\.” 用于匹配符号 “.”,而 “.*” 用于匹配任何字符// 在DeepSeek问为什么要加这个规则,说是以前google()仓库还不成熟的时候,有些人为了加快访问,也会把Android官方插件上传到别的地方,比如jcenter,又或者是别人上传了相同但是修改过的非法插件,// 这入这个配置之后表示只能google()仓库下载这些插件,而且也表示google()仓库只提供这些开头的插件,如果也要从别的镜像下载的话,// 则别的镜像也要加入这个配置,这样就表示配置有的都可以下载,没配置有的则不行,找不到官方说法,不知道是不是这样的。有时间可以自己创建两个私服仓库,然后进行实验。includeGroupByRegex("com\\.android.*") // 匹配 com.android 开头的组includeGroupByRegex("com\\.google.*")  // 匹配 com.google 开头的组includeGroupByRegex("androidx.*")      // 匹配 androidx 开头的组}}mavenCentral()       // 第三方插件gradlePluginPortal() // gradle插件以及第三方插件}
}
dependencyResolutionManagement {repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)repositories {// google()仓库的的阿里云镜像maven { url = uri("https://maven.aliyun.com/repository/google")}// mavenCentral()仓库的阿里云镜像(同时包含jcenter()仓库)jmaven {url = uri("https://maven.aliyun.com/repository/public")}// 备用官方仓库google()       // Android官方依赖mavenCentral() // 第三方依赖}
}

注意配置仓库的顺序,当我们创建一个Android项目时,它默认的仓库顺序是这样的:google()mavenCentral()gradlePluginPortal(),所以我们的镜像仓库也尽量保持这个顺序。

当我们同步一个Gradle项目的时候,可以查看到哪个依赖从哪个仓库中下载成功了,如下:
在这里插入图片描述
下载失败的也同样能看到,如下:
在这里插入图片描述
因为我们配置了多个仓库,所以在某个仓库下载失败了没关系,它还会尝试在别的仓库中去下载。在实际的使用中,我发现并不是这样的,一但某个请求超时了,则认Gradle认为是致命错误,直接停止整个工作,不再尝试后面别的仓库了, Gradle 将超时视为网络层不可用的严重错误,所以直接停止整个工作,这在使用聚合仓库时特别容易发生超时。有3个解决办法:

  1. 是看哪个仓库超时了,然后把后面的仓库往前放再重试。

  2. 在gradle.properties文件中加长超时时间或增加重试次数:

    # 连接超时60秒,读取超时120秒
    systemProp.http.connectionTimeout=60000
    systemProp.http.readTimeout=120000
    systemProp.org.gradle.internal.http.retry.max.attempts=3  # 重试3
  3. 有些仓库组配置了多个仓库,如果这多个都找不到需要的资源,就会导致请求的时间更长,更容易触发超时,所以可以选择不使用仓库组,每个仓库都单独使用。

根据经常,我感觉使用第三个方式更好一点,在我的使用场景中,公司搭了Nexus私服,所以我把阿里云代理和官方都用Nexus代理一遍,以便依赖可以缓存到公司,加快访问,但是这时千万别用Group,它会很容易导致超时,然后就是整个构建都停止的,根本不会说某个仓库超时了再尝试别的仓库,我的项目使用示例如下:

fun RepositoryHandler.maven2(repoPath: String, includeGroups: Boolean = false) {maven {isAllowInsecureProtocol = trueurl = uri("http://192.168.1.251:8084/repository/$repoPath")if (includeGroups) {content {includeGroupByRegex("com\\.android.*")includeGroupByRegex("com\\.google.*")includeGroupByRegex("androidx.*")}}}
}pluginManagement {fun RepositoryHandler.maven2(repoPath: String, includeGroups: Boolean = false) {maven {isAllowInsecureProtocol = trueurl = uri("http://192.168.1.251:8084/repository/$repoPath")if (includeGroups) {content {includeGroupByRegex("com\\.android.*")includeGroupByRegex("com\\.google.*")includeGroupByRegex("androidx.*")}}}}repositories {maven2("android-google-aliyun-plugin/", true)// google()仓库的阿里云代理maven2("android-maven-central-plugin-aliyun/")            // mavenCentral()仓库的阿里云代理maven2("android-gradle-plugin-portal-aliyun/")            // gradlePluginPortal()仓库的阿里云代理maven2("android-google-plugin/", true)       // google()仓库的本地代理maven2("android-maven-central-plugin/")                   // mavenCentral()仓库的本地代理maven2("android-gradle-plugin-portal/")                   // gradlePluginPortal()仓库的本地代理// 备用官方仓库google {content {includeGroupByRegex("com\\.android.*")includeGroupByRegex("com\\.google.*")includeGroupByRegex("androidx.*")}}mavenCentral()       // 第三方插件gradlePluginPortal() // gradle插件以及第三方插件}
}
dependencyResolutionManagement {repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)repositories {maven2("android-google-aliyun/")        // google()仓库的阿里云代理maven2("android-maven-central-aliyun/") // mavenCentral()仓库的阿里云代理maven2("android-google/")               // google()仓库的本地代理maven2("android-maven-central/")        // mavenCentral()仓库的本地代理// 备用官方仓库google()       // Android官方依赖mavenCentral() // 第三方依赖}
}rootProject.name = "DayDayUp"
include(":app")

这里为了简化仓库配置的重复代码创建了顶层函数maven2,但是我发现顶层函数只对dependencyResolutionManagement中的repositories 有用,对pluginManagement中的repositories不起作用,会报错,于是我把maven2函数在pluginManagement作用域中又声明了一次。这些仓库里面android-google-aliyun-plugin/android-google-aliyun/是一样的,都是代理的同一个阿里云的地址,为什么要创建不同名字的两个仓库,这是为了区分报错时,通过url地址能知道它是在下载一个插件时出错的,还是下载 一个普通第三方库时出错的,因为插件的地址都带有plugin字符串。

gradlePluginPortal() 仓库介绍

gradlePluginPortal() 这是Gradle官方的仓库,专门用于托管 ​Gradle 官方gradle插件及第三方的gradle插件,比如:

  • 官方插件(如 org.jetbrains.kotlin.android)
  • 社区插件(如 com.github.spotbugs、io.spring.dependency-management)

gradle的官方插件通常不会托管到mavenCentral()google()

mavenCentral() 仓库介绍

包含几乎所有 ​非 google() 系的 Java 库(当然也包含kotlin)。

google() 仓库介绍

仅包含 ​Google 官方发布的库。Google 的 Android 相关库不在 Maven 中央仓库发布,而是托管在独立的 maven.google.com,即google()仓库。官方Android库比如:

- Android SDK 组件(如 `com.android.tools.build:gradle`)
- Material Design 库(如 `com.google.android.material:material`)
- Firebase 服务(如 `com.google.firebase:firebase-auth`)
- Play 服务(如 `com.google.android.gms:play-services-maps`)

jitpack 仓库介绍

另外还有仓库也是经常能看到:https://jitpack.io,遗憾的是阿里云并未提供此仓库的镜像,DeepSeek对该仓库的介绍:

JitPack 是一个托管 ​GitHub/GitLab 开源项目 的 Maven 仓库,允许开发者直接通过 Git 仓库地址引用依赖,例如:

implementation 'com.github.用户名:仓库名:版本号'

典型场景:

  • 引用 GitHub 上的个人或小型开源项目。
  • 快速测试未发布到 Maven Central 的库。

为什么阿里云不镜像 JitPack?

  • 技术挑战:JitPack 的构建是动态的(基于 Git 提交),传统镜像工具无法实时同步。
  • 版权风险:JitPack 上的库版权归属复杂,直接镜像可能引发法律问题。
  • 使用频率:相比 Maven Central,JitPack 的使用场景较为小众。

对于JitPack 仓库,依赖下载时会走国内 CDN,实际速度可能较快,这取决于网络,如果发现下载慢的话,可以使用私服仓库缓存起来,或者缓存到mavenLocal()仓库。

mavenLocal()仓库介绍

mavenLocal()GradleMaven 构建工具中的一个特殊仓库配置,用于从本地 Maven 缓存目录(通常位于 ~/.m2/repository)中查找依赖。它的核心作用是让开发者能够优先使用本地已安装或手动发布的库,而非从远程仓库下载。

gradle默认并不会把从google()mavenCentral()等下载到的依赖缓存到mavenLocal()仓库(~/.m2/repository),对于如何把这些仓库下载的依赖安装到mavenLocal()可以问DeepSeek,我懒得写这么多了。

注意事项

  • 慎用优先级:
    若将 mavenLocal() 放在第一位,可能意外使用到本地过时或测试中的依赖,导致构建不一致。建议仅在调试时启用。
  • 清理缓存:
    本地仓库可能积累大量无用依赖,定期清理(删除 ~/.m2/repository 中的旧文件)可节省空间。
  • 团队协作问题:
    本地仓库的内容不会同步给其他开发者,团队项目中避免依赖 mavenLocal() 中的库。

一些别人的参考文章

  • https://blog.csdn.net/m0_67392661/article/details/124131843 这里面有介绍到一个Maven-Search插件使用,据说搜索插件非常快。
  • https://www.cnblogs.com/chensheng0617/p/18307141

文章转载自:

http://akUHwKLn.nqLkb.cn
http://yYCY04p3.nqLkb.cn
http://kZAA1nPW.nqLkb.cn
http://BFYADodf.nqLkb.cn
http://PgCTEAeK.nqLkb.cn
http://z1tSUkJ6.nqLkb.cn
http://uH9UvsSB.nqLkb.cn
http://X1GEq5so.nqLkb.cn
http://PIGmct7H.nqLkb.cn
http://slDLNWPy.nqLkb.cn
http://GDIcgJBn.nqLkb.cn
http://tE1T95l3.nqLkb.cn
http://mIApn3xj.nqLkb.cn
http://YW6P2wiK.nqLkb.cn
http://LpUFkQ70.nqLkb.cn
http://rasZUh70.nqLkb.cn
http://hpCK6eMH.nqLkb.cn
http://L8geLcSn.nqLkb.cn
http://oCD8V1oN.nqLkb.cn
http://SKNUBJfF.nqLkb.cn
http://hO5B4isU.nqLkb.cn
http://r2c1VMrf.nqLkb.cn
http://fJrVbvsu.nqLkb.cn
http://UHuG9OfV.nqLkb.cn
http://EdESVs25.nqLkb.cn
http://VRmRbIxR.nqLkb.cn
http://83nZ0U9l.nqLkb.cn
http://y3lpJmq6.nqLkb.cn
http://4rdSVNuA.nqLkb.cn
http://MPMYKHiV.nqLkb.cn
http://www.dtcms.com/wzjs/632089.html

相关文章:

  • php网站做分享到朋友圈做电影网站需要多大空间
  • iis 配置网站 404页面电子商务网站建设的方法和工具
  • 对网站建设的要求网站制作有限
  • 方山建站报价安徽地图
  • 有没有专门做橱窗的案例网站开题报告电子商务网站建设
  • 流媒体视频网站开发怎么开通公司网站
  • 怎么样能够为一个网站做推广如何创建一个自己的博客
  • 网站管理工作流程如何做京东优惠券网站
  • 公司做一个网站多少钱十大电子元器件采购商城
  • 做网站需要营业执照吗WordPress完美建站
  • 响应式网站布局实例装修网站设计需求说明分析下载文档
  • 美妆网站制作教程wordpress 调用头尾
  • 网站开发经验教训wordpress怎么解绑域名
  • 个人网站建设月租抵30元中国互联网金融协会平台官网
  • 网站开发线框域名注册好后怎么建设网站
  • 外贸网站建设便宜做包装盒子的厂家哪个网站
  • 网站字体设计重要性建立网站ppt
  • 相应式网站wordpress图片后加载很慢
  • 怎么外贸网站推广微信连接微网站吗
  • 云南城市建设职业学院网站兰山区建设局网站
  • 建网站怎么挣钱网上书店网站建设规划书
  • 企业做网站的申请报告加强财政门户网站建设工作
  • 吉林市百姓网免费发布信息网seo推广招聘
  • 2017年做网站维护总结哪个网站可以专门做产品推广
  • 都匀网站建设公司网站建设数据库配置
  • 网络营销导向企业网站建设的一般原则网站开发公司怎么做账
  • 网站建设岗位能力评估表wordpress怎么编程
  • 网页设计作业在线网站首页网页链接转二维码
  • 官方网站侵权软件开发专业学校
  • 可以做3d电影网站有哪些电影网站开发PPT模板