实际项目开发-多环境开发

1.前言

一个稍微大一点的软件公司,他们开发项目时一般都会有多套环境,如:开发dev,预发pre,线上publish,公共daily…在这里Maven可以实现按不同环境进行打包部署,命令为: mvn package -P dev dev我们可以自己定义。
为什么要多套环境?
我们项目开发时用开发的环境,测试通过后,我们推到预发环境上,测试通过后我们就可以推到线上去。但是这几种环境的服务器:如mysql,redis..肯定会有所不同,所以我们如果换一种环境后就又去该项目配置,这很不良好。所以用maven,打包时指定不同环境,这样就轻易解决了。


2.具体怎么实现

1) 在pom.xml文件中添加如下:

 <build>
        <finalName>cxx</finalName>
        <filters>
            <filter>src/main/filter/${env}.properties</filter>
        </filters>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
                <includes>
                    <include>**/**</include>
                </includes>
            </resource>
        </resources>
        <testResources>
            <testResource>
                <directory>src/test/resources</directory>
                <filtering>true</filtering>
            </testResource>
        </testResources>
    </build>
    <profiles>
        <profile>
            <id>dev</id>
            <properties>
                <env>dev</env>
            </properties>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        <profile>
            <id>daily</id>
            <properties>
                <env>daily</env>
            </properties>
        </profile>
        <profile>
            <id>pre</id>
            <properties>
                <env>pre</env>
            </properties>
        </profile>
        <profile>
            <id>publish</id>
            <properties>
                <env>publish</env>
            </properties>
        </profile>
    </profiles>

这里写图片描述

2) 设置多环境下的配置
这里写图片描述

daily.properties

disconf.server=disconf.cxx-daily.com
disconf.version=1.0.0
disconf.app=boss-api
disconf.dev=daily
disconf.debug=true

其他几个我就不贴出来,比如改一下服务器地址…

3) 在resources下创建我们要的配置文件,我建了一个disconf.properties

disconf.enable.remote.conf=true
disconf.server=${disconf.server}
disconf.version=${disconf.version}
disconf.app=${disconf.app}
disconf.dev=${disconf.dev}
disconf.debug=${disconf.debug}

我们接下来要实现的就是,怎么根据环境的不同,把disconf.properties变量的值替换成不同环境的。

4) Maven上场了,看我怎么操作吧。
这里写图片描述

这里写图片描述

这里写图片描述

然后我们开发时到哪个环境下,就把那个环境下项目打的包扔到相应的服务器上,这样就好了!!!

猜你喜欢

转载自blog.csdn.net/m0_37499059/article/details/81033134