原文链接 译者:carvendy
使用镜像仓库
在你指定的仓库中选择你想下载的确定工具,利润依赖或者maven插件。仓库可以什么在项目里,意味着如果你有一个自定义仓库,你将分析你的项目和容易地获取正确的配置。可是,你可能想使用一些可替换的镜像来作为特殊仓库而不改变项目文件。
使用镜像的一些原因:
- 这是一个在网络上同步的镜像,位置很近也很快。
- 你想替换掉一个特别的仓库使用你自己的网络仓库将会有更好的控制权
- 你想使用仓库管理来提供本地缓存镜像,需要使用它的URL。
为了配置一个仓库的镜像,你提供你的配置文件(${user.home}/.m2/settings.xml),给一个新的仓库和它有自己的id和url,和指定的mirrorOf配置使用仓库的id就可以使用镜像。例子,Maven中心仓库的id默认为central,所以使用欧洲中心仓库,你应该配置如下:
<settings>
...
<mirrors>
<mirror>
<id>UK</id>
<name>UK Central</name>
<url>http://uk.maven.org/maven2</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
...
</settings>
注意:对于给定的存储库,最多只能有一个镜像。换句话说,你不能制定一个仓库到一个镜像组并不能定义同样的==<mirrorOf>==。Maven将不会狙击镜像但是简单地使用第一个匹配的。如果你想提供几个仓库组成的仓库,使用 仓库管理 代替。
设置描述文档可以在Maven本地配置模板被找到。
注意:官方Maven 2仓库在http://repo.maven.apache.org/mavenhost在US,而http://uk.maven.org/maven2 host在UK。
在所知道的镜像中可用的在仓库元数据中。镜像可能有不同的内容和我们不以任何方式支持它。
使用单仓库
你可以指定Maven是一个单仓库如果镜像作用于所有仓库。这个仓库必须包含所有渴望的工件和被代理的到其他仓库的请求。这些设置是最好用的当使用网络公司仓库来管理Maven仓库而使用额外的代理请求。
为了完成这个,设置mirrorOf为==*==
注意: 这个特殊只有在 2.0.5以上。
<settings>
...
<mirrors>
<mirror>
<id>internal-repository</id>
<name>Maven Repository Manager running on repo.mycompany.com</name>
<url>http://repo.mycompany.com/proxy</url>
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>
...
</settings>
先进的仓库指定
单仓库镜像可以处理多个仓库,当你使用多个仓库管理的时候。
- 这里有一个Maven 2.0.9的。
- * 匹配所有仓库
- external:* 匹配所有仓库期望使用本地或者文件基础仓库。这是使用结合一个仓库管理当你想排除定义为集成测试的重定向仓库。
- 多仓库可能指定使用逗号作为分隔符
- 一个感叹标记可能使用结合上面的通配符来排除仓库id
通配符位置使用逗号分隔仓库列表这不是重要的,正如通配符延缓处理,明确的包含和排除停止进程,明确任何通配符。
当你使用先进的语法和配置多镜像,记住他们声明顺序问题。当Maven在找一些仓库的镜像,它首先会检查镜像的==<mirrirOf>明确地匹配仓库标识符。如果没有匹配,Maven会使用第一个镜像声明并按照上面匹配规则(如果有的话)。因此,你可能影响到匹配顺序受在setting.xml==中的定义顺序改变而影响。
注意:这个特性只有在Maven 2.0.9以上可用。
例子:
- * = 任何
- external:* 不在本地和不是基于文件的一切
- repo,repo1 = repo或repo1
- *,!repo1 除了repo1的一切
<settings>
...
<mirrors>
<mirror>
<id>internal-repository</id>
<name>Maven Repository Manager running on repo.mycompany.com</name>
<url>http://repo.mycompany.com/proxy</url>
<mirrorOf>external:*,!foo</mirrorOf>
</mirror>
<mirror>
<id>foo-repository</id>
<name>Foo</name>
<url>http://repo.mycompany.com/foo</url>
<mirrorOf>foo</mirrorOf>
</mirror>
</mirrors>
...
</settings>
创建你自己的镜像
中心仓库的大小稳步增长,为了保存我们的带宽和你的时间,镜像整个中心仓库是不允许的。(你这样做将自动禁止)除此之外,我们建议你安装一个仓库管理作为一个代理。
如果你准备做一个官方镜像,在你的位置联系我们MVNCENTRAL,问我们将会帮助你安装。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/99865.html