Maven使用过程中的几个细节

1. Settings.xml的生效问题

maven共有两个settings.xml:
全局配置: ${M2_HOME}/conf/settings.xml
用户配置: ${user.home}/.m2/settings.xml
maven使用两者的合并信息,用户配置的优先级高于全局配置。其有mvn -s(–settings)可以修改用户配置.

2. 多个Profile的生效问题

Profile根据环境条件被激活:
1) <activeByDefault>true</activeByDefault>
2) <activeProfile>profileName</activeProfile>
3) ..
如果多个Profile同时激活,则Profile会合并,相同的配置则后定义的Profile优先级比较高。与active的顺序无关。

3. repository的搜索顺序

repository分两类:本地仓库和远程仓库。远程仓库包括全局仓库,项目仓库和中央仓库。搜索顺序如下:
1) 本地仓库: 就是本地的缓存目录,一般~/m2/repository
2) 全局仓库: setting文件profile中配置的仓库。
3)项目仓库: 项目pom.xml中profile配置的仓库。
4)项目仓库: 项目pom.xml中配置的仓库。
5) 中央仓库:就是central仓库