1、Maven配置文件中 mirror和repository的区别
1.1 repository
repository就是个仓库,maven里有两种仓库,Local Repository(本地仓库)和Remote Repository(远程仓库)。
1.1.1 Remote Repository(远程仓库)主要有3种
- 中央仓库:http://repo1.maven.org/maven2/
- 私服:内网自建的maven repository,其URL是一个内部网址
- 其他公共仓库:其他可以互联网公共访问maven repository,例如 jboss repository等。
1.1.2 本地和远程的区别
- 远程仓库相当于公共的仓库,大家都能看到。
- 本地仓库是你本地的缓存副本,只有你看的到,主要起缓存作用。
- 当你向仓库请求插件或依赖的时候,会先检查本地仓库里是否有。
如果有则直接返回,否则会向远程仓库请求,并被缓存到本地仓库。 - 远程仓库可以在工程的pom.xml文件里指定。
如果没指定,默认会到http://repo1.maven.org/maven2 这个地方去请求插件和依赖包
<repository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>central</id>
<name>Maven Repository Switchboard</name>
<url>http://repo1.maven.org/maven2</url>
</repository>
本地仓库默认在你本地的用户目录下的.m2/repository目录下
1.2 mirror
mirror相当于一个拦截器,它会拦截maven对remote repository的相关请求,把请求里的remote repository地址,重定向到mirror里配置的地址。
mirror就是镜像,主要提供一个方便地切换远程仓库地址的途径。例如,上班的时候在公司,用电信的网络,连的是电信的仓库。回到家后,是网通的网络,我想连网通的仓库,就可以通过mirror配置,统一把我工程里的仓库地址都改成联通的,而不用到具体工程配置文件里一个一个地改地址。
mirror的配置在.m2/settings.xml里。如:
<mirrors>
<mirror>
<id>UK</id>
<name>UK Central</name>
<url>http: