<setting>setting 文件的根元素setting>
<localRepository>本地仓库localRepository>
<localRepository>${user.home}/.m2/repositorylocalRepository>
<interactiveMode>Maven 是否与用户交互interactiveMode>
<interactiveMode>trueinteractiveMode>
<offline>离线模式offline>
<offline>falseoffline>
<pluginGroups>插件组pluginGroups>
<proxies>
<proxy>
<id>optionalid>
<active>trueactive>
<protocol>httpprotocol>
<username>proxyuserusername>
<password>proxypasspassword>
<host>proxy.host.nethost>
<port>80port>
<nonProxyHosts>local.net|some.host.comnonProxyHosts>
proxy>
proxies>
<servers>
<server>
<id>deploymentRepoid>
<username>repouserusername>
<password>repopwdpassword>
server>
servers>
<mirrors>
<mirror>
<id>mirrorIdid>
<mirrorOf>repositoryIdmirrorOf>
<name>Human Readable Name for this Mirror.name>
<url>http://my.repository.com/repo/pathurl>
mirror>
mirrors>
<profiles>
<profile>
<id>nexusid>
<repositories>
<repository>
<id>nexusid>
<name>Nexusname>
<url>http://100.4.252.5:18080/nexus/content/groups/publicurl>
<releases>
<enabled>trueenabled>
<updatePolicy>dailyupdatePolicy>
<checksumPolicy>warnchecksumPolicy>
releases>
<snapshots>
<enabled>trueenabled>
<updatePolicy>dailyupdatePolicy>
<checksumPolicy>warnchecksumPolicy>
snapshots>
repository>
repositories>
<pluginRepositories>
<pluginRepository>
<id>nexusid>
<name>Nexusname>
<url>http://100.4.252.5:18080/nexus/content/groups/publicurl>
<releases><enabled>trueenabled>releases>
<snapshots><enabled>trueenabled>snapshots>
pluginRepository>
pluginRepositories>
profile>
profiles>
pom.xml: pom 文件的 profile 只对当前项目生效
用户setting.xml: 用户目录下/.m2/setting.xml 文件中的 profile 只对本机该用户所有的 Maven 项目生效
全局setting.xml: Maven 安装目录下的 setting.xml 文件中的 profile 对本机所有的 Maven 项目生效
profiles.xml (Maven 2) 还可以在项目根目录下使用一个额外的 profiles.xml 声明,该特性在 Maven 3 中移除,建议将 profiles 添加到 setting.xml 中
通过命令行激活:用户使用 mvn 命令行参数 -P 加上 profile 的id 来激活 profile,多个通过逗号分隔
mvn clean -Pdev-x,dev-y
setting.xml 配置文件显式激活:使用 activeProfiles 属性,表示 setting.xml 中的 profile 在所有项目中激活
<activeProfiles>
<activeProfile>nexusactiveProfile>
activeProfiles>
系统属性激活:用户可以配置系统属性 test 存在时,自动激活 profile ,如下面第一个示例;用户可以配置系统属性存在,且系统属性值时,自动激活profile,如下面第二个示例
<profiles>
<profile>
<activeprofile>
<property>
<name>testname>
property>
activeprofile>
profile>
profiles>
<profiles>
<profile>
<activeprofile>
<property>
<name>testname>
<value>xvalue>
property>
activeprofile>
profile>
profiles>
mvn clean -Ptest=x
操作系统环境激活:profile 可以根据不同操作系统环境自动激活,如果构建在不同操作系统环境且有差异,可以把这些差异写进 profile
<profiles>
<profile>
<activeprofile>
<os>
<name>Window XPname>
<family>Windowvalue>
<arch>X86arch>
os>
activeprofile>
profile>
profiles>
文件是否存在激活:Maven 能够根据项目中某个文件是否存在来决定是否激活 profile
<profiles>
<profile>
<activeprofile>
<file>
<missing>y.propertiesname>
<exists>x.propertiesvalue>
file>
activeprofile>
profile>
profiles>
<activeProfiles>
<activeProfile>central(id 需要与 profile 中的 id 保持一致)activeProfile>
activeProfiles>