pom.xml中的profile能配置如下元素:

  • id

  • activation

  • repositories

  • pluginRepositories

  • properties

  • build

  • modules

  • dependencies

  • dependencyManagement

  • repositories

  • pluginRepositories

  • distributionManagement

  • reporting

在每个profile中,都有一个<activation>给出当前profile被激活的环境条件,其中给出的任何一个条件满足即激活该profile。示例如下:

  <profiles>  
    <profile>  
      <id>mytest</id>  
      <activation>  
        <activeByDefault>false</activeByDefault>  
        <jdk>1.5</jdk>  
        <os>  
          <name>Windows XP</name>  
          <family>Windows</family>  
          <arch>x86</arch>  
          <version>5.1.2600</version>  
        </os>  
        <property>  
          <name>sparrow-type</name>  
          <value>African</value>  
        </property>  
        <file>  
          <exists>${basedir}/file2.properties</exists>  
          <missing>${basedir}/file1.properties</missing>  
        </file>  
      </activation>  
      ...  
    </profile>  
  </profiles>  
</project>

说明:

jdk,检查构建使用的JDK

os,检查构建服务器的操作系统

property,检查构建过程中是否存在名为${name}的属性及其值

file,检查这里配置的文件是否存在(<exists>)或者不存在<missing>

一个profile是否被激活,还可以根据在settings.xml文件中的<activeProfile>中的id属性,或者根据JVM启动参数-P给出的激活条件,如mvn clean package -Pmytest。