maven mirrorOf

转载 http://blog.csdn.net/isea533/article/details/21560089

在maven中配置一个mirror时,mirror通常会设置成*,还有可能是一个具体的值,还有可能是逗号隔开的几个值..

例如:

1.*

2.repo3

3.repo1,repo2,*,!repo3

4.external:*

在上面4个例子中,第一个例子中*的意思就是(根据mirrorOf和repository的id)匹配所有的库(repository),这样就是说如果你需要某个jar,他会从镜像地址去下载这个jar。不管你配置了多少个库,即使这些库的地址不一样,仍然会从镜像地址访问,这里就产生了问题。

问题:为什么我配置好了库(repository),但是下载不下来(或者下载地址不对)?

这个问题已经很明白了,就是镜像(mirror)的问题。

问题:如何解决上述问题呢?

这里请继续看第二个例子和第三个例子。

第二个例子只配置了一个repo3,这个镜像只能匹配id是repo3的库,该库会使用repo3的镜像访问。这里说重点了,即使存在一个*的,这里会先查找完全相同的存储库标识符匹配的镜像,如果找到了,就用匹配的,这里就是repo3,这点可以放心。如果找不到,那就去根据其他的mirrorOf查找去,查找到一个就使用。这里需要注意的是,如果存在多个重复的mirrorOf,只会用排名靠前的第一个(按照配置顺序来)。如果一个都没有,就会用maven中央库。

第三个例子是用逗号隔开的好几个,并且有一个特殊的!repo3,一般!的意思是非,这里的意思就是,就是排除repo3的情况。综合起来第三个的含义就是完全匹配repo1,repo2和其他全部库,排除repo3库。

到这里,第二个问题已经有了答案,给这个库配置单独的镜像,而且位置尽量在前面,id和mirrorOf一致。说到这两个一致,还得说两个不能一致的情况,就是mirror的mirrorOf不能和任何mirror的id一致,因为id在setting中唯一,mirrorOf要和库的id一致,所以势必不能和mirror的id一致,如果一致显然就起不到作用了(这里属于猜测,官方要求不能一致)。

第四个例子很特殊,含义就是匹配本地库之外的全部库。如果本地库存在,就用本地库的。

时间: 2024-10-20 10:12:04

maven mirrorOf的相关文章

Maven settings配置中的mirrorOf

原文地址:http://blog.csdn.net/isea533/article/details/21560089 使用maven时,从来没仔细注意过setting配置节点的作用,直到今天配置总是不起作用,总是报错才开始去认识这些节点的含义. 这里就说mirrorOf,因为其他的怎么配置基本上都不会出错,只有mirrorOf会导致莫名其妙的错误,如果你还不了解mirrorOf,请往下看,你会认识到mirrorOf的重要作用的. 主要参考来自: Using Mirrors for Reposit

IDEA 配置maven

编写Maven的settings.xml文件内容如下 引入阿里镜像和maven在中国的中央仓库镜像 <?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:sc

Maven:mirror和repository 区别

1 Repository(仓库) 1.1 Maven仓库主要有2种: remote repository:相当于公共的仓库,大家都能访问到,一般可以用URL的形式访问 local repository:存放在本地磁盘的一个文件夹,例如,windows上默认是C:\Users\{用户名}\.m2\repository目录 1.2 Remote Repository主要有3种: 中央仓库:http://repo1.maven.org/maven2/ 私服:内网自建的maven repository,

Maven的国内镜像(解决jar下载过慢)

Maven简介 maven作为一个项目管理工具确实非常好用,结果在使用时候,你会发现下载jar速度不如自己在网上下载.之前oschina的中央仓库可用,现在oschina的maven服务器关了,只能拿国内镜像来替代.在网上发现阿里云公开了一个中央仓库,就顺手写下来了,方便以后使用. 修改Maven目录中的conf/settings.xml 找到mirrors节点,添加到节点下 1.这是阿里云仓库 <mirror> <id>alimaven</id> <name&g

Maven更新慢怎么办?试试换成国内镜像

汗一个,最近刚找到方法.以前竟然忍受那么慢的更新速度. 解决办法是修改配置文件 apache-maven-3.3.3\conf\settings.xml 我这边主要做了三个地方的修改 1.仓库保存位置(默认是C盘),修改如下图 2.添加镜像站点.找到 mirrors标签.修改如下图: 3.修改默认JDK版本 完整的文档settings.xml如下: 1 <?xml version="1.0" encoding="UTF-8"?> 2 3 <!--

maven私服搭建nexus介绍(二)

1.各个仓库介绍 Hosted:宿主仓库 主要放本公司开发的SNAPSHOTS测试版本,RELEASES正式发行版.合作公司第三方的jar包. Proxy:代理仓库 代理中央仓库:代理Apache下测试版本jar包 Group:组仓库 存放各种仓库(宿主仓库,代理仓库) Virtual:虚拟仓库(废弃) 代理maven1版本的jar包 2.组仓库可进行配置,存放那个仓库(配置后 通过组仓库即可访问配置过的仓库) 3.maven中私服的配置 jar包上传配置 setting.xml中的配置 <se

maven仓库--私服(Nexus的配置使用)

1.1 私服仓库是什么 私服,私有服务器,是公司内部Maven项目经常需要的东东.Nexus是常用的私用Maven服务器,一般是公司内部使用.其作用指定私服的中央地址.将自己的Maven项目指定到私服地址.从私服下载中央库的项目索引.从私服仓库下载依赖组件.将第三方项目jar上传到私服供其他项目组使用. 1.2 Nexus中的仓库 1.2.1 类型介绍: ?  hosted,本地仓库,通常我们会部署自己的构件到这一类型的仓库.比如公司的第二方库. ?  proxy,代理仓库,它们被用来代理远程的

Eclipse-Mars Release (4.5.0)创建Maven项目报错

1.Eclipseb版本为Mars Release (4.5.0) 2.报错内容 Could not calculate build plan: Plugin org.apache.maven.plugins:maven-resources-plugin:2.6 or one of its dependencies could not be resolved:.................................... 3.解决方法 找到本地仓库位置,将仓库中的/org/apache

Maven中手动安装或部署jar

一些第三方jar包我们需要手动进行安装部署,另外如果使用nexus时索引未更新下来急于使用时也可以进行安装或部署.安装(install)仅将相应jar包安装到了本地仓库,而部署(deploy)则将jar包部署到了私有仓库中.如下两段代码分别是命令行形式下安装oracle 的jdbc驱动包,和部署surefire-junit包到私服上的代码. <span style="font-size:12px;">mvn install:install-file -DgroupId=co