Using Mirrors for Repositories
Repositories是你指定的用于下载某些artifacts的位置,如dependencies和maven-plugins,Repositories可以在项目中声明,这意味着如果你有自己的订制Repositories,那么将能够很容易的共享你的项目,然而,你也可能想要不修改项目文件的情况下使用一个特殊仓库的镜像。
使用镜像的理由:
- 互联网上存在同步的镜像,并且更近,更快。
- 你想要用你更能控制的你自己的内部repository替换一个特别的repository
- 你想要运行一个仓库管理器来提供一个镜像的本地缓存,并且需要使用它的URL替代。
要配置一个给定repository的镜像,你需要在你的settings配置文件(settings.xml)中配置它自己的id和url,并且指定mirrorOf为所要配置Repository的ID,例如主要的美国中心Repository包含的ID默认为central,所以如果要使用欧州中心Repository,你需要配置如下:
...
UK
UK central
http://uk.maven.org/maven2
cenral
...
一个给定的Repository只能拥有一个镜像,换句话说,你不映射一个Repository到一组使用相同值的镜像。虽然maven不限制,但是只会选择第一个匹配到的镜像。
使用单一Repository
你可以强制Maven使用单一的Repository,并通过它来反射所有的仓库请求。这要的Repository必须包含所有的需要的artifacts或者能够代理对其他Repository的请求。此种配置在使用一个公司内部的使用Maven仓库管理工具代理其他请求的仓库时是非常有用的。
要实现这样的配置,需要将mirrorOf值设置为*。如下:
...
internal-repository
Maven Repository Manager running on repo.mycompany.com
http://repo.mycompany.com/proxy
*
...
Advanced Mirror Specification
一个镜像(mirror)可以操作多个Repository,语法如下:
- *表示匹配所有仓库ID
- external:*表示匹配除了本地和基于文件的Repository
- 指定多个RepositoryID时可以用逗号分隔,如repo,repo1。
- *,!repo1表示匹配除了repo1外的所有仓库ID。
如:
...
internal-repository
Maven Repository Manager running on repo.mycompany.com
http://repo.mycompany.com/proxy
external:*,!foo
foo-repository
Foo
http://repo.mycompany.com/foo
foo
...
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/228228.html原文链接:https://javaforall.net
