maven配置多仓库镜像(转)
原文地址:maven配置多仓库镜像
问题场景:
1、国内访问maven默认远程中央镜像特别慢
2、用阿里的镜像替代远程中央镜像
3、大部分jar包都可以在阿里镜像中找到,部分jar包在阿里镜像中没有,需要单独配置镜像
我想达到的目标:
在maven中配置一主一副两个镜像,大部分jar直接通过主镜像可以找到,部分特殊jar在主镜像中找不到时,自动去副镜像中寻找。
我所处的阶段:
修改了maven的全局配置文件setting.xml(其所处位置maven的安装目录maven/apache-maven-3.3.9/conf/setting.xml):
1、配置了本地仓库:
- <localRepository>D:/maven/repository</localRepository>
2、配置了中央仓库的镜像:(换成了阿里的)
<mirror>
<id>nexus-aliyun</id>
<name>nexus-aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
<mirrorOf>central</mirrorOf>
</mirror>
希望你也做到了这一步。并且知道了mirrorOf为什么要配置为central
我所做的尝试:
我想在全局配置文件setting.xml配置两个镜像,希望有主从的区别,希望maven能在大部分情况下去阿里镜像下载jar包,个别情况去附属镜像下载jar包。
最有用的一篇博文,这位大拿翻译了maven的官网,请看连接:大拿讲Maven settings配置中的mirrorOf
其实关键就是要搞懂mirrorOf和镜像的先后顺序
与是我在setting.xml里对这两个主从镜像,尝试了各种mirrorOf和顺序的组合,最后发现如下配置实现了我的愿望
<mirror>
<id>奇葩-mirror</id>
<name>奇葩-mirror</name>
<url>https://奇葩/repo/</url>
<mirrorOf>central</mirrorOf>
</mirror> <mirror>
<id>nexus-aliyun</id>
<name>nexus-aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
<mirrorOf>*</mirrorOf>
</mirror>
以上配置,当maven发现所需的奇葩jar在阿里镜像中没有时,会自动去奇葩镜像中寻找。奇葩jar的确下载下来了。
问题解决了,但是!我觉得这样很不爽!对,你可能觉得我有强迫症,但的确是这样,我觉得很不爽,难道你不这样认为么
maven的mirrorOf配置设计的很不科学,以上配置算解决了我的问题,但是我觉得这样的mirrorOf配置在语义上很不符合我的逻辑。
为什么要给一个很少用到的镜像配置一个central?
如果有大拿发现有更好的配置逻辑和语义请告诉我
现实就是这样,当你发现可以临时解决问题时(可能是碰巧,隐患还很多),碰巧你还很忙,继续改进的动力也就止步了,是的我就认为问题到此截至了,如果我有空的话,我就改maven的源码,重写一套mirrorOf的逻辑。
转折
今天,我看了另一篇文章,很基础,连接在这里:很基础的知识
于是,我有了新的想法:
1,在全局配置文件setting.xml,只配置一个中央仓库的镜像,即mirrorOf为central的镜像只配置一个
2、在具体项目的pom.xml文件里配置特殊的仓库
忙里偷闲,实验一下,成功了!
这才是很符合逻辑的配置呀,是不是觉得这样的配置很舒服。
全局配置里就应该只配置一个中央仓库,其他的个别仓库也不应该往全局配置里配,所以不用在纠结mirrorOf的配置语义了!就一个central,简单明了!
终极解决方案:
同学提示我应该搭建自己的私服!这是另一个研究方向,日后再说!
我先说我的大招(我憋了很久了):
1、在全局配置文件setting.xml配置一个central仓库的镜像。
2、在具体项目的pom里配置个别的仓库,如下
<repositories>
<repository>
<id>奇葩仓库</id>
<url>https://奇葩仓库/public/</url>
</repository>
</repositories>
例如
<repositories>
<repository>
<id>mvnrepository</id>
<url>http://mvnrepository.com/</url>
</repository>
<repository>
<id>repo2</id>
<url>http://repo2.maven.org/maven2/</url>
</repository>
</repositories>
maven配置多仓库镜像(转)的更多相关文章
- myeclipse2014 安装maven3.3.9和maven配置本地仓库 及错误修改
结合网上的知识梳理以及自己安装的经验 myeclipse2014 安装maven3.3.9和maven配置本地仓库 及犯的错误修改 成功搞定maven 1,安装 Maven 之前要求先确定你的 J ...
- maven配置本地仓库、maven配置阿里中央仓库、eclipse配置maven
一.maven配置本地仓库路径 1.打开下载好的maven目录 (若没安装,可以看我写的安装步骤https://www.cnblogs.com/xjd-6/p/11344719.html) 2.进入c ...
- maven配置本地仓库和国内镜像仓库,解决国内访问国外中央仓库速度过慢问题
Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具. 1.配置本地仓库 打开conf文件夹下面的setting.xml文件 红色方框为配置本地仓 ...
- Maven学习之 仓库镜像
使用仓库镜像 仓库可以声明在项目中,但有时,你可能想要使用某个仓库的镜像,而不去修改项目文件. 使用镜像的原因: 有一个同步镜像,且速度更快. 想使用你自己控制的内部仓库. 想运行repository ...
- maven配置多个镜像
问题场景 1.国内访问maven默认远程中央镜像特别慢 2.用阿里的镜像替代远程中央镜像 3.大部分jar包都可以在阿里镜像中找到,部分jar包在阿里镜像中没有,需要单独配置镜像 解决方案 setti ...
- 你还再为下载jar包慢而烦恼吗?Maven配置阿里云镜像
Maven配置阿里云镜像 为什么我们下载jar这么慢 maven默认会从中央仓库下载jar包,这个仓库在国外,而且全世界的人都会从这里下载,所以下载速度肯定是非常慢的. 解决方案使用镜像 什么是镜像? ...
- maven配置远程仓库
1,当中央仓库无法满足要求时,可能项目需要的构件存在另一个远程仓库中.可以在POM文件中配置该仓库.代码如下: <project> ...... <repositories> ...
- Windows下 maven3.3.1的安装步骤+maven配置本地仓库
简单讲下maven的安装步骤: 1.在安装maven之前,先确保已经安装JDK1.6及以上版本,并且配置好环境变量. 2.下载maven3,最新版本是Maven3.3.1 ,下载地址:http://m ...
- Windows下 maven3.0.4的安装步骤+maven配置本地仓库
简单讲下maven的安装步骤: 1.在安装maven之前,先确保已经安装JDK1.6及以上版本,并且配置好环境变量. 2.下载maven3,最新版本是Maven3.0.4 ,下载地址:http://m ...
随机推荐
- 【使用指南】WijmoJS 前端开发工具包
为方便广大前端开发人员更好的使用 WijmoJS 前端开发工具包,葡萄城专门推出了 WijmoJS 使用指南,该指南详细地介绍了如何把 WijmoJS 各种强大的功能应用到您自己的 Web 项目中,助 ...
- 面试官:你了解Webpack吗?
前言 大家好哟,这是第四篇面试官篇,估计还有个七八十篇面试文章(前端苦命). 这篇文章介绍了webpack核心概念以及如何使用. 开始吧! 概念 webpack的核心概念只要记住下面四个就够用了(除非 ...
- tomcat中实现特定路径下的图片的url访问Tomcat配置图片保存路径,图片不保存在项目路径下
使用Tomcat作为服务器的时候,如果不配置图片保存路径,将图片保存在项目路径下,那么再次打war包发布项目可能会造成图片的丢失,每次重启前将图片先保存再copy到服务器明显不方便,这时可以配置图片保 ...
- R语言可视化学习笔记之ggpubr包—SCI文章图
转载:https://www.jianshu.com/p/678213d605a5?from=jiantop.com Hadley Wickham创建的可视化包ggplot2可以流畅地进行优美的可视化 ...
- CSS3实现鼠标移动到图片上图片变大(缓慢变大,有过渡效果,放大的过程是有动画过渡的,这个过渡的时间可以自定义)
转载自:http://blog.csdn.net/u014175572/article/details/51535768 CSS3的transform:scale()可以实现按比例放大或者缩小功能. ...
- FreeCodeCamp---advanced Algorithm Scripting解法
Exact Change 设计一个收银程序 checkCashRegister() ,其把购买价格(price)作为第一个参数 , 付款金额 (cash)作为第二个参数, 和收银机中零钱 (cid) ...
- 滑动验证 和滑动图片验证JS
滑动验证 先放效果图 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...
- 离线人脸识别C#类库分享 虹软2.0版本
目前只封装了人脸检测部分的类库,供大家交流学习,肯定有问题,希望大家在阅读使用的时候及时反馈,谢谢!使用虹软技术开发完成 戳这里下载SDKgithub:https://github.com/dayAn ...
- ArcFace2 #C 视频人脸比对教程
请允许我大言不惭,叫做教程,特希望各位能指正.哦,我用的是vs2017.使用虹软技术 一.准备工作1.创建项目 2.添加EMGU.CV包 3.复制虹软的dll到项目 ,并设属性“复制到输出目录”为“如 ...
- 第 8 章 容器网络 - 049 - 准备 Overlay 网络实验环境
overlay环境准备 在docker-machine (10.12.31.21)的基础上 docker主机 host1 (10.12.31.22) host2 (10.12.31.23) 在dock ...