首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

Maven 使用 profile 跟 filtering 实现多种环境下的资源配置管理

2013-11-02 
Maven 使用 profile 和 filtering 实现多种环境下的资源配置管理Filtering 功能Filtering 是 Maven Resour

Maven 使用 profile 和 filtering 实现多种环境下的资源配置管理
Filtering 功能Filtering 是 Maven Resources Plugin 的一个功能,它会使用系统属性或者项目属性的值替换资源文件(*.properties,*.xml)当中 ${…} 符号的值。比如你系统属性有一项 “user.name=foobar”,那么资源文件当中的 ${user.name} 符号会在 Maven 编译时自动被替换为 “foobar”。

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)。

热点排行