maven-profile标签

maven-profile标签

丁起男 75 2022-05-19

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>