Maven Profile分环境打包

2015-08-28 veryyoung 更多博文 » 博客 » GitHub »

原文链接 http://veryyoung.me/blog/2015/08/28/maven-profile.html
注:以下为加速网络访问所做的原文缓存,经过重新格式化,可能存在格式方面的问题,或偶有遗漏信息,请以原文为准。


用maven管理的程序一般是在本地开发完,上传到版本控制工具,在服务器上更新代码,然后执行

maven install

但是有些配置文件需要进行改动,如jdbc数据源配置、log日志级别、redis server、jdk版本等。

在线上服务器上去vi是一件特别麻烦的事情。

<!-- more -->

maven提供了配置文件管理方案:maven profile

maven profile可以根据情况去读取不同的配置,来实现配置管理的功能。

加入有 dev、qa、product 等几种类别的配置文件,需要在resource目录新建这三个文件夹,分别放入配置文件。

项目结构如下:

然后在pom.xml中增加配置。

<build>
    <resources>
        <resource>
            <directory>src/main/baseResources</directory>
        </resource>
        <resource>
            <directory>src/main/resources/${package.environment}</directory>
        </resource>
    </resources>
</build>

<profiles>
    <profile>
        <id>product</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
            <package.environment>product</package.environment>
        </properties>
    </profile>
    <profile>
        <id>dev</id>
        <properties>
            <package.environment>dev</package.environment>
        </properties>
    </profile>
    <profile>
        <id>qa</id>
        <properties>
            <package.environment>qa</package.environment>
        </properties>
    </profile>
    <profile>
        <id>sync</id>
        <properties>
            <package.environment>sync</package.environment>
        </properties>
    </profile>
</profiles>

在本地环境中要激活dev,可以

mvn package –P dev

线上执行

mvn package –P product  

其他环境以此类推

常用的IDE也都有选择profile的方法。

以IDEA为例。

如下图去勾选和选择。