Maven Settings 中的一些容易混淆的概念
首先是repositories
,其中定义了一些远程仓库(私服)。本来是可以直接定义在POM.xml ,但是由于一个公司通常多个项目都是使用的同一个远程仓库(私服)。为了每个项目不重复定义。所以可以统一配置在settings.xml。由于settings下不能直接定义repositories
所以采用了profiles
。同时也可以使用profiles
做不同环境下的配置切换。
容易混淆的是mirrors
,配置多个mirror
,并不是每一个都会生效,始终只有第一个有用。另外mirrors
跟profiles没有什么直接关系,有关系的是repository
,mirrorOf
中配置的是repository id(支持表达式)。一般我们mirror
的都是central这类官方,因为mirror
的主要作用就是解决不同网络环境下,这种官方的或者第三方的仓库速度问题。如果你有私服,然后直接mirrorOf *
到了阿里云的镜像库,那么你私服的Jar可能就访问不到了。
maven找Jar的路径大概是,本地仓库>各个远程库,如果配置了镜像,则走镜像库。
server
配置的是maven私服账号密码信息,用于分发jar到私服时认证,通常在pom文件中会定义distributionManagement
,其中repository id 必须和server的id一致。
分发指的是deploy
。install
只会在本地库中存在。