免费b站推广网站app/今日重大新闻头条十条

免费b站推广网站app,今日重大新闻头条十条,政府网站建设指标,网页定制多少钱阿里云云效 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://www.mzph.cn/news/899386.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何在 Postman 中正确设置 Session 以维持用户状态?

在 Postman 里面设置有 session 的请求。如果你还不知道什么是 session,那么请看这里—— session 是一种记录客户端和服务器之间状态的机制,用于保持用户的登录状态或者其他数据,从而让用户在不同页面之间保持一致的体验。 Postman 设置带 …

DQN与PPO在算法层面的核心区别

DQN与PPO在算法层面的核心区别 1. 学习目标不同 DQN(基于价值): 核心:学习动作价值函数 Q ( s , a ) Q(s, a)

解析 HTML 网站架构规范

2025/3/28 向全栈工程师迈进! 一、网页基本的组成部分 网页的外观多种多样,但是除了全屏视频或游戏,或艺术作品页面,或只是结构不当的页面以外,都倾向于使用类似的标准组件。 1.1页眉 通常横跨于整个页面顶部有一…

Three.js 快速入门教程【二十】3D模型加载优化实战:使用gltf-pipeline与Draco对模型进行压缩,提高加载速度和流畅性

系列文章目录 Three.js 快速入门教程【一】开启你的 3D Web 开发之旅 Three.js 快速入门教程【二】透视投影相机 Three.js 快速入门教程【三】渲染器 Three.js 快速入门教程【四】三维坐标系 Three.js 快速入门教程【五】动画渲染循环 Three.js 快速入门教程【六】相机控件 Or…

基于51单片机的速度检测报警器proteus仿真

地址: https://pan.baidu.com/s/1I7roZEjrk349Is_YdMcsxQ 提取码:1234 仿真图: 芯片/模块的特点: AT89C52/AT89C51简介: AT89C51 是一款常用的 8 位单片机,由 Atmel 公司(现已被 Microchip 收…

DeepSeek 本地化部署教程

1 概述 1.1 配置参考图 科普: B,Billion(十亿),是 “参数量” 的单位。 模型量超过 一亿,可称之为 “大模型”。 2 软件安装 2.1 下载 Ollama 官方主页:https://ollama.com/download主页截图…

matlab打开两个工程

1、问题描述 写代码时,需要实时参考别人的代码,需要同时打开2个模型,当模型在同一个工程内时,这是可以直接打开的,如图所示 2、解决方案 再打开一个MATLAB主窗口 这个时候就可以同时打开多个模型了 3、正确的打开方…

mac 下配置flutter 总是失败,请参考文章重新配置flutter 环境MacOS Flutter环境配置和安装

一、安装和运行Flutter的系统环境要求 想要安装并运行 Flutter,你的开发环境需要最低满足以下要求: 操作系统:macOS磁盘空间:2.8 GB(不包括IDE/tools的磁盘空间)。工具:Flutter使用git进行安装和升级。我们建议安装Xcode,其中包括git&#x…

Flutter快速搭建聊天

之前项目中使用的环信聊天,我们的App使用的Flutter开发的 。 所以,就使用的 em_chat_uikit ,这个是环信开发的Flutter版本的聊天。 一开始,我们也用的环信的聊天,是收费的,但是,后面就发现&…

Sa-Token

简介 Sa-Token 是一个轻量级 Java 权限认证框架,主要解决:登录认证、权限认证、单点登录、OAuth2.0、分布式Session会话、微服务网关鉴权 等一系列权限相关问题。 官方文档 常见功能 登录认证 本框架 用户提交 name password 参数,调用登…

基于javaweb的SSM航班机票预订平台系统设计与实现(源码+文档+部署讲解)

技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论…

JAVA实现动态IP黑名单过滤

一些恶意用户(可能是黑客、爬虫、DDoS 攻击者)可能频繁请求服务器资源,导致资源占用过高。因此需要一定的手段实时阻止可疑或恶意的用户,减少攻击风险。 通过 IP 封禁,可以有效拉黑攻击者,防止资源被滥用,保障合法用户…

开源的CMS建站系统可以随便用吗?有什么需要注意的?

开源CMS建站系统虽然具有许多优点,但并非完全“随便用”。无论选哪个CMS系统,大家在使用的时候,可以尽可能地多注意以下几点: 1、版权问题 了解开源许可证:不同的开源CMS系统采用不同的开源许可证,如GPL、…

故障识别 | 基于改进螂优化算法(MSADBO)优化变分模态提取(VME)结合稀疏最大谐波噪声比解卷积(SMHD)进行故障诊断识别,matlab代码

基于改进螂优化算法(MSADBO)优化变分模态提取(VME)结合稀疏最大谐波噪声比解卷积(SMHD)进行故障诊断识别 一、引言 1.1 机械故障诊断的背景和意义 在工业生产的宏大画卷中,机械设备的稳定运行…

探究 CSS 如何在HTML中工作

2025/3/28 向全栈工程师迈进&#xff01; 一、CSS的作用 简单一句话——美化网页 <p>Lets use:<span>Cascading</span><span>Style</span><span>Sheets</span> </p> 对于如上代码来说&#xff0c;其显示效果如下&#xff1…

硬件老化测试方案的设计误区

硬件老化测试方案设计中的常见误区主要包括测试周期不足、测试条件过于单一、样品选择不当等方面。其中&#xff0c;测试周期不足尤为突出&#xff0c;容易导致潜在缺陷未被完全暴露。老化测试本质上是通过加速产品老化来模拟长期使用状况&#xff0c;因此测试周期不足会严重削…

无锡零碳园区“三年突围”安科瑞源网荷储充系统如何破解“绿电难、储能贵、调度乱”困局?

零碳园区建设如火如荼&#xff0c;为何企业“不敢投、不会用”&#xff1f; 无锡市政府3月27日发布《零碳园区建设三年行动方案》&#xff0c;目标到2027年建成10家以上零碳园区、20家零碳工厂、10个源网荷储一体化项目。但企业仍存疑虑&#xff1a; 绿电消纳难&#xff1a;光…

docker torcherve打包mar包并部署模型

使用Docker打包深度网络模型mar包到服务端 参考链接&#xff1a;Docker torchserve 部署模型流程——以WSL部署YOLO-FaceV2为例_class myhandler(basehandler): def initialize(self,-CSDN博客 1、docker拉取环境镜像命令 docker images出现此提示为没有权限取执行命令&…

kubernetes》》k8s》》 kubeadm、kubectl、kubelet

kubeadm 、kubectl 、kubelet kubeadm、kubectl和kubelet是Kubernetes中不可或缺的三个组件。kubeadm负责集群的快速构建和初始化&#xff0c;为后续的容器部署和管理提供基础&#xff1b;kubectl作为命令行工具&#xff0c;提供了与Kubernetes集群交互的便捷方式&#xff1b;而…

linux 硬盘扩展

场景&#xff1a; [rootlocalhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 40G 0 disk ├─sda1 8:1 0 1M 0 part ├─sda2 8:2 0 1G 0 part /boot └─sda3 …