一,repositories 的使用
有些jar包是某些公司或者个人开发的,并没有传到中央仓库(maven官方仓库),所以我们平常所说的镜像仓库(如阿里云的仓库)里面也没有这些jar包, 比如个推的jar包,还有银联的jar包好像也是,那么我们要使用这些jar,就需要告诉maven让它从哪里去下载这些中央仓库中不存在的jar包,就需要用repositories来指定,由于使用某个jar是和某个项目有关的,所以一般在项目的pom.xml中配置,比如大众点评的仓库:
<repositories>
<!--可以配置多个仓库-->
<!--这个是中央仓库,可以不写,这里只是为了演示可以配置多个-->
<repository>
<id>central</id>
<name>Maven2 Central Repository</name>
<layout>default</layout>
<url>http://repo1.maven.org/maven2</url>
</repository>
<repository>
<!--这个id可以自定义,在settings.xml中的mirror中可以使用这个id的值-->
<id>unidal.releases</id>
<!--仓库地址-->
<url>http://unidal.org/nexus/content/repositories/releases/</url>
</repository>
</repositories>
二,mirrors
由于国内网络访问中央仓库(maven官方仓库)很慢,所以通过镜像配置,可以将仓库地址改为阿里云的仓库或者自己搭建的私服地址,可以配置多个镜像地址,
注意:mirrors是在maven的配置文件settings.xml中配置的,而不是在项目的pom.xml中配置的。
注意看其中的注释,重点全部在注释里面:
<mirrors>
<mirror>
<!-- 这个id 可以任意命名,不重复就可以-->
<id>alimaven</id>
<!--
mirrorOf的取值:
1,central,表示对中央仓库(可理解成maven官方仓库)做镜像
2,pom.xml中定义的<repository> 的 <id> 标签,表示只针对某个具体的仓库地址做镜像
3,* ,表示对所有的仓库做镜像
这里的写法表示:对所有仓库做镜像,但不对getui-nexus、unidal.releases 这两个
repositoryId做镜像,这两个id都是在项目的pom.xml中定义的,
getui-nexus是个推的仓库、unidal.releases是大众点评的仓库
一般来说我们只针对central做镜像就可以了,其他仓库的包会根据项目的pom.xml
中定义的 repository 自动从各自的仓库去下载,这里用排除法的方式只是演示一下有这种写法
-->
<mirrorOf>*,!getui-nexus,!unidal.releases</mirrorOf>
<!-- 这个name 可以任意命名-->
<name>aliyun maven</name>
<!-- 镜像仓库地址,这个是阿里云的仓库地址-->
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
<!-- 可以配置多个mirror节点 -->
</mirrors>