Maven Settings 中的一些容易混淆的概念

首先是repositories,其中定义了一些远程仓库(私服)。本来是可以直接定义在POM.xml ,但是由于一个公司通常多个项目都是使用的同一个远程仓库(私服)。为了每个项目不重复定义。所以可以统一配置在settings.xml。由于settings下不能直接定义repositories所以采用了profiles。同时也可以使用profiles做不同环境下的配置切换。

容易混淆的是mirrors,配置多个mirror,并不是每一个都会生效,始终只有第一个有用。另外mirrors 跟profiles没有什么直接关系,有关系的是repositorymirrorOf 中配置的是repository id(支持表达式)。一般我们mirror的都是central这类官方,因为mirror的主要作用就是解决不同网络环境下,这种官方的或者第三方的仓库速度问题。如果你有私服,然后直接mirrorOf * 到了阿里云的镜像库,那么你私服的Jar可能就访问不到了。

maven找Jar的路径大概是,本地仓库>各个远程库,如果配置了镜像,则走镜像库。

server配置的是maven私服账号密码信息,用于分发jar到私服时认证,通常在pom文件中会定义distributionManagement,其中repository id 必须和server的id一致。
分发指的是deployinstall只会在本地库中存在。