使用maven,实现多环境可移植构建

使用maven,实现程序在不同环境的切换

前言:在开发中我们会遇到这样的情况,开发环境是对应的数据库的地址是A,但是部署到测试环境的时候是B,真正放到线上的时候是C,
运行的环境一旦切换就要修改配置的参数,这样会造成开发不必要的麻烦。
所以,一般会针对每一个环境写一套配置参数,在构建项目的时候根据对应的环境来引入配置文件。
使用maven提供的 filter,profiles 这两个功能来解决上述的问题。

1,首先,我们创建一个目录来存放对应的配置文件,如果对应的每一个环境会有多个配置文件的换,建议分多个目录。

filter-dev.properties       
fitler-test.properties
filter-produce.properties

上面的三个文件,分别对应到开发,测试,生产的三个环境。

2,在pom.xml文件中定义三种环境的名称

<profiles>
    <profile>
        <id>dev</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
            <active.profile>dev</active.profile>
        </properties>
    </profile>
    <profile>
        <id>test</id>
        <properties>
            <active.profile>test</active.profile>
        </properties>
    </profile>
    <profile>
        <id>product</id>
        <properties>
            <active.profile>product</active.profile>
        </properties>
    </profile>
</profiles>

上述的配置,通过

    <activation>
           <activeByDefault>true</activeByDefault>
    </activation>

来定义默认使用的Profile为dev。

3,在pom.xml文件对构建的时候对应的配置文件进行拦截过滤。

<build>
        <filters>
                <filter>config_fillters/filter-${active.profile}.properties</filter>
        </filters>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
</build>

表示对应所有的src/main/resources下面的所有的配置文件就行过滤。
在这一步骤特别要注意的是对应的文件夹目录,和文件的名称一定不能写错。

总结:通过上面的三个步骤就可以实现不同运行环境的切换了。假如我们在applicationContesx.xml文件中定义的参数就可以这样来定义。.

<bean id="jedisPool" class="com.water.core.cache.ShardedJedisPoolFactory">
    <property name="hostAndPorts" value="@redis.address@"/>
    <!--<property name="hostAndPorts" value="127.0.0.1:6379"/>-->
</bean>

就会根据你引入的配置文件中找到键 redis.address 对应的值了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值