maven-profile标签
project标签下除了modelVersion和坐标标签之外,其他标签都可以配置到profile中。并且即使我们不配置profile标签,也已经使用到了profile,因为根标签project下所有标签相当于在一个默认的profile之下
配置
settings.xml中配置:全局生效
pom.xml中配置:当前pom生效
<profiles>
<profile>
<!-- id标签:唯一标识 -->
<id>jdk-1.8</id>
<!-- activation标签:激活方式 -->
<activation>
<!-- activeByDefault标签:是否默认激活 -->
<activeByDefault>true</activeByDefault>
<!-- jdk标签:标识当前profile可以根据jdk版本来激活 -->
<jdk>1.8</jdk>
</activation>
<!-- 其他标签:当前profile被激活后要采纳的配置 -->
<properties>
<java.version>8</java.version>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
</profile>
</profiles>
-
profiles/profile标签
- 由于profile天然代表众多可选配置中的一个所有由负数形式的profiles标签统一管理
- 由于profile标签覆盖了pom.xml中的默认配置,所以profiles标签通常是pom.xml中的最后一个标签
-
id标签
每个profile都必须有一个id标签,指定该profile的唯一标识。这个id标签的值会在命令调用profile时被用到。命令是:-P<profileId>
-
其他标签
一个profile可以覆盖项目的最终名称、项目依赖、插件配置等各个方面以影响构建行为
激活
maven可以在activation标签中设置多个条件来觉得是否激活当前profile
如:
- os:系统要求
- jdk:jdk版本要求,不需要匹配小版本
- property:根据属性
- file:是否有某个文件
在3.2.2版本之前:遇到第一个满足的条件即可激活,是或的关系
在3.2.2版本之后:各条件均需满足,是且的关系
命令激活
- 列出活动的profile:mvn help:active-profiles
- 指定某个具体的profile:mvn compile -P<profileId>