关于配置文件,一般是组内互相传阅,这样能最大程度保证配置的正确性,特别是对于公司自有的私库配置。
本文暂时不对 Maven 配置文件的配置知识进行详细介绍,只关注实际开发中配置文件容易出错的地方。
一、文件配置
IDEA 中 Maven 配置文件位置在: File | Settings | Build, Execution, Deployment | Build Tools | Maven
检查是否配置了正确的 settings.xml 文件路径。
二、配置本地仓库
<localRepository>D:/MavenLocalRepository</localRepository>确定配置的本地仓库路径是否正确;另外,IDEA 的 Maven 配置中可以进行针对性覆盖。
三、仓库配置与镜像规则
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>https://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>该例中,<mirrorOf> 的值为 central,表示该配置为中央仓库的镜像,任何对于中央仓库的请求都会转至该镜像,用户也可以使用同样的方法配置其他仓库的镜像。另外三个元素 id、name、url 与一般仓库配置无异,表示该镜像仓库的唯一标识符、名称以及地址。类似地,如果该镜像需要认证,也可以基于该 id 配置仓库认证。
镜像概念说明
如果仓库 X 可以提供仓库 Y 存储的所有内容,那么就可以认为 X 是 Y 的一个镜像。换句话说,任何一个可以从仓库 Y 获得的构件,都能够从它的镜像中获取。 举个例子,公网公共镜像往往能够提供比海外中央仓库更快的下载服务。因此,可以配置 Maven 使用该镜像来替代中央仓库。
虽然 mirrors 可以配置多个子节点,但是它只会使用其中的一个节点,即默认情况下配置多个 mirror 的情况下,只有第一个生效,只有当前一个 mirror 无法连接的时候,才会去找后一个。
而我们想要的效果是:当 a.jar 在第一个 mirror 中不存在的时候,maven 会去第二个 mirror 中查询下载,但是 maven 的 <mirror> 配置无法直接实现这个效果。