一、前言

今天同事遇到个问题,本来公司是有maven私服的,但同事觉得上面有些东西下载不到,于是在自己本地的maven配置中加了:

<mirrors>

<mirror>
<id>bolRemote</id>
<mirrorOf>*</mirrorOf>
<name>cts</name>
<url>http://192.168.19.210:8081/nexus/content/groups/public/</url>
</mirror> <mirror>
<id>aliyun</id>
<mirrorOf>central</mirrorOf>
<name>ali yun</name>
<url>https://maven.aliyun.com/mvn/view</url>
</mirror> </mirrors>

然后下载个组件,说下载不下来。

二、解决

首先,这里我感觉很奇怪的是,下载时,加了-U,让其强制去私服下载。

但是我想的是,mirrorOf设为*之后,应该所有请求都会去私服下载啊,为啥日志里显示还去了aliyun的地址呢?

于是看了官方文档,也在本地进行了实验(wireshark抓包)。

抓包中看到了向aliyun.com发出的http请求,请求的地址为:

https://maven.aliyun.com/mvn/view/org/apache/maven/plugins/maven-clean-plugin/2.5/maven-clean-plugin-2.5.jar

前半部分,地址就是仓库url的地址,后半部分为要下载的artifact的地址。

相当于:

maven本地在查找仓库时,是先查找了完全匹配的仓库,然后再查找私服。查找到仓库后,直接在仓库url后,拼接对应的组件的地址,然后请求服务器。

三、官方文档的说明

http://maven.apache.org/guides/mini/guide-mirror-settings.html

这里也可以看出来,是先去查找完全匹配的仓库镜像。比如,我要查central仓库,然后发现mirrors中配置了镜像,然后就查找central完全匹配的镜像地址。

然后找到了就用它,没找到,就看看是否有通配符那种的镜像。(一般私服就是用的mirrorOf *,这时候就匹配上了)。

更多细节,直接看官方文档吧。就

http://maven.apache.org/guides/mini/guide-mirror-settings.html

同事的问题在于,那个仓库的url不对,改为:

http://maven.aliyun.com/nexus/content/groups/public/即可。

maven 中的mirror详解的更多相关文章

  1. maven中scope标签详解

    前言 最近在做itoo的pom优化工作,发现对于maven依赖管理中的scope标签还是有不明白的地方,所以今天就来总结一下这方面的知识,scope在maven的依赖管理中主要负责项目的部署 mave ...

  2. maven中profiles使用详解

    使用的场景 常常遇到一些项目中多环境切换的问题.比如在开发过程中用到开发环境,在测试中使用测试环境,在生产中用生产环境的情况.springboot中提供了 spring.profile.active的 ...

  3. Maven中POM.XML详解

    转自https://blog.csdn.net/jariwsz/article/details/19554137 我们先看一个简单的例子: <project xmlns="http:/ ...

  4. maven中的Exclusions详解

    依赖关系:Project-A>Project-B>Project-C,但是Project-A不依赖Project-C,在Project-A中的POM.xml应该进行如下配置: <de ...

  5. Maven中的dependency详解

    <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> & ...

  6. Maven依赖中的scope详解,在eclipse里面用maven install可以编程成功,到服务器上用命令执行报VM crash错误

    Maven依赖中的scope详解 项目中用了<scope>test</scope>在eclipse里面用maven install可以编译成功,到服务器上用命令执行报VM cr ...

  7. Maven配置文件setting.xml详解

    注:本文来源于:大话JAVA的那些事 <Maven配置文件setting.xml详解> <?xml version="1.0" encoding="UT ...

  8. JAVA Eclipse使用Maven构建web项目详解(SSM框架)

    tips: 启动项目后,welcome-file的链接即为测试用例 部署maven web项目 Eclipse使用Maven构建web项目详解 pom.xml添加webapp依赖: <depen ...

  9. Maven pom.xml文件详解

    Maven pom.xml文件详解 一.简介 POM全称是Project Object Model,即项目对象模型. pom.xml是maven的项目描述文件,它类似与antx的project.xml ...

随机推荐

  1. 安装bootcamp时提示“找不到$winpedriver$文件夹,请验证该文件夹是否和bootcamp处于同一文件夹内?”

    问题:我苹果系统是10.8.3的 装的win7 64位的! 这个bootcamp是我在别人那里拷贝的,我装的时候就这样了,但是别人装是好好的,还有我在MAC系统下载bootcamp的时候我的U盘格式是 ...

  2. JS数字指定长度不足前补零的实现

    问题描述:         要求输出的数字长度是固定的,如长度为2,数字为1,则输出01,即不够位数就在之前补足0. 解决方法: 方法1 function fn1(num, length) { ret ...

  3. APP中的图片如何长按可以下载并保存图片到相册出错处理

    https://www.cnblogs.com/interdrp/p/9302164.html 接上文. 如果用户在保存图片过程中,不小心拒绝了相册的访问权限

  4. 使用ScriptableObject创建.asset文件

    .asset一般用来存储一些配置,比如SDK初始化的相关参数. using System.Collections.Generic; using UnityEngine; namespace XXX { ...

  5. c++中函数的参数传递,内联函数和默认实参的理解

    1.参数传递 1)函数调用时,c++中有三种传递方法:值传递.指针传递.引用传递. 给函数传递参数,遵循变量初始化规则.非引用类型的形参一相应的实参的副本初始化.对(非引用)形参的任何修改仅作用域局部 ...

  6. SharePoint Excel Service - Couldn't Open the Workbook.

    Error meesage: "Couldn't Open the Workbook. Wow, That's a big workbook. Unfortunately, we can't ...

  7. Python数据预处理:机器学习、人工智能通用技术(1)

    Python数据预处理:机器学习.人工智能通用技术 白宁超  2018年12月24日17:28:26 摘要:大数据技术与我们日常生活越来越紧密,要做大数据,首要解决数据问题.原始数据存在大量不完整.不 ...

  8. failed to create process怎么解决

    python 在cmd时,报错:failed to create process怎么解决 在cmd命令前加 : python -m 命令(如:python -m conda update conda)

  9. windows10开启wst子系统

    需求描述: 在玩docker发现需要linux运行玩转,直接在vmware虚拟机上跑 ,性能有损耗.想直接在windows下运行docker 问题解决: windows10的wst子系统可以安装lin ...

  10. eclipse工具中使用Data Source Explorer连接数据库(MySQL)

    1.进入Eclipse工具,打开Data Source Explorer.Window==>Show View==>Data Source Explorer(注:如果找不到请选择Other ...