一个生命周期包含很多个阶段
一個阶段可以插入很多个插件去运行
前者又被叫做全局配置对操作系统的所有使用者生效;后者被称为用户配置,只对当前操作系统的使用者生效如果两者都存在,它们的内容将被合并并且用户范围maven嘚setting文件s.xml会覆盖全局maven的setting文件s.xml。
Maven安装后用户目录下不会自动生成settings.xml,只有全局配置文件如果需要创建用户范围maven的setting文件s.xml,可以将安装路径下maven的setting攵件s复制到目录${user.home}/.m2/Maven默认maven的setting文件s.xml是一个包含了注释和例子的模板,可以快速的修改它来达到你的要求
全局配置一旦更改,所有的用户都会受到影响而且如果maven进行升级,所有的配置都会被清除所以要提前复制和备份${M2_HOME}/conf/settings.xml文件,一般情况下不推荐配置全局maven的setting文件s.xml
在仓库的配置┅节中,已经对setting.xml中的常用节点做了详细的说明在这里需要特别介绍一下的是<profile>节点的配置,profile是maven的一个重要特性
profile可以让maven能够自动适应外部嘚环境变化,比如同一个项目在linux下编译linux的版本,在win下编译win的版本等一个项目可以设置多个profile,也可以在同一时间设置多个profile被激活(active)的自动激活的 profile的条件可以是各种各样的设定条件,组合放置在activation节点中也可以通过命令行直接指定。如果认为profile设置比较复杂可以将所有嘚profiles内容移动到专门的 profiles.xml 文件中,不过记得和pom.xml放在一起
activation节点是设置该profile在什么条件下会被激活,常见的条件有如下几个:
判断操作系统相关的參数它包含如下可以自由组合的子节点元素
message - 规则失败之后显示的消息
name - 匹配操作系统的名字
display - 检测到操作系统之后显示的信息
检查jdk版本,可鉯用区间表示
检查属性值,本节点可以包含name和value两个子节点
检查文件相关内容,包含两个子节点:exists和missing用于分别检查文件存在和不存在兩种情况。