Profile 功能Profile 的作用是允许你在项目文件(pom.xml)里定义若干个 profile 段,然后在编译时选择其中的一个用于覆盖项目文件原先的定义。
<profiles> <profile> <id>online</id> <activation> <activeByDefault>false</activeByDefault> </activation> <properties> <build.profile.id>online</build.profile.id> </properties> <build> <filters> <filter>profiles/online/config.properties</filter> </filters> <resources> <resource> <filtering>true</filtering> <directory>src/main/resources</directory> <includes> <include>jdbc.properties</include> <include>log4j.properties</include> <include>system.properties</include> <include>alarm.properties</include> </includes> </resource> <resource> <filtering>false</filtering> <directory>src/main/resources</directory> </resource> </resources> </build> </profile> <profile> <id>local</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <build.profile.id>local</build.profile.id> </properties> <build> <filters> <filter>profiles/${build.profile.id}/config.properties</filter> </filters> <resources> <resource> <filtering>true</filtering> <directory>src/main/resources</directory> <includes> <include>jdbc.properties</include> <include>log4j.properties</include> <include>system.properties</include> <include>alarm.properties</include> </includes> </resource> <resource> <filtering>false</filtering> <directory>src/main/resources</directory> </resource> </resources> </build> </profile> </profiles>
在编译项目时,可以使用 -P 参数指定需要使用的 profile 的 id,比如下面命令将会使用
$mvn clean compile -P online
如果想使用 local profile 则执行如下命令:
$mvn clean compile -P online
假如不指定 -P 参数的话,则会使用 activeByDefault=true 的一项(即 local)。