用 maven、filter 管理不同环境的配置文件

版权声明:分享知识是一种快乐,愿你我都能共同成长! https://blog.csdn.net/qidasheng2012/article/details/89520438

一、简介

在实际开发过程中会用dev(开发)、sit(测试)、uat(测试)、pro(生产)四个不同环境,在不同环境下数据库及其他配置参数都是不同的,基于上述问题我们可以使用maven的filter管理不同环境的配置文件


二、使用篇

SSM项目demo: https://github.com/qidasheng2012/ssm

1、先在根目录下建一个filters目录,再分别建dev、sit、uat、pro四个目录
在这里插入图片描述
2、在pom.xml中进行配置

<build>
  
    <resources>
        <!-- 设置对src/main/resources下所有*.properties进行过虑,即这些文件中的${key}会被替换掉为真正的值 -->
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*.properties</include>
            </includes>
            <filtering>true</filtering>
        </resource>

        <!-- 设置对src/main/resources下所有*.xml,不会进行替换 -->
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*.xml</include>
            </includes>
            <filtering>false</filtering>
        </resource>

        <!-- 设置对src/main/java下所有*.xml,不会进行替换 -->
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.xml</include>
            </includes>
            <filtering>false</filtering>
        </resource>
    </resources>
</build>

<profiles>
    <profile>
        <id>dev</id>
        
        <!-- 默认激活开发配制,使用config-dev.properties来替换设置过虑的资源文件中的${key} -->
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>

        <build>
            <filters>
                <!--有多个文件时配置多个filter-->
                <filter>${basedir}/filters/dev/applicationContext.properties</filter>
            </filters>
        </build>
    </profile>

    <profile>
        <id>sit</id>
        <build>
            <filters>
                <filter>${basedir}/filters/sit/applicationContext.properties</filter>
            </filters>
        </build>
    </profile>

    <profile>
        <id>uat</id>
        <build>
            <filters>
                <filter>${basedir}/filters/uat/applicationContext.properties</filter>
            </filters>
        </build>
    </profile>

    <profile>
        <id>pro</id>
        <build>
            <filters>
                <filter>${basedir}/filters/pro/applicationContext.properties</filter>
            </filters>
        </build>
    </profile>
</profiles>

3、打不同环境的包

mvn clean install -P + filter的id值

例:

  • 打sit包
mvn clean install -P sit
  • 打生产包
mvn clean install -P pro

猜你喜欢

转载自blog.csdn.net/qidasheng2012/article/details/89520438