zoukankan      html  css  js  c++  java
  • maven环境隔离

    引言

    在Maven项目开发中,一般都会有四种环境情形: 

    1. 本地环境(Local) 
    2. 开发环境(Dev) 
    3. 测试环境(Beta) 
    4. 发布环境(Prod)

     
    在不同环境中,总会遇到FTP服务器配置不一样,数据库配置不一样等一系列问题,这样Maven的环境隔离将有助于我们轻松切换不同配置环境。

    配置预览

    maven环境隔离解决的实际问题

    • 避免人工修改犯错(忘了修改线上、线下地址)
    • 轻松分环境编译、打包、部署

    maven环境隔离的配置及原理

    pom.xml 中 build节点上增加如下配置

    <resources>
        <resource> <!--配置文件路径 -->
        <directory>src/main/resources</directory> <!--这里对应项目存放配置文件的目录--> <!--开启filtering功能 -->
        <filtering>true</filtering>
        <excludes>
            <exclude>application-local.properties</exclude>
            <exclude>application-dev.properties</exclude>
            <exclude>application-prod.properties</exclude>
            <exclude>application-test.properties</exclude>
        </excludes>
        </resource>
    
        <resource> <!--配置文件路径 -->
        <directory>src/main/resources</directory> <!--这里对应项目存放配置文件的目录--> <!--开启filtering功能 -->
        <filtering>true</filtering>
        <includes>
            <include>application-${activatedProperties}.properties</include>
            <include>application.properties</include>
        </includes>
        </resource>
    </resources>

    其中 ${activatedProperties} 对应下述配置节点中的  activatedProperties 属性值

    接着在 pom.xml 中增加 profiles 节点

        <profiles>
            <profile>
                <id>local</id>
                <properties> <!-- 环境标识,需要与配置文件的名称相对应 -->
                    <activatedProperties>local</activatedProperties>
                </properties>
                <activation> <!-- 默认环境 -->
                    <activeByDefault>true</activeByDefault>
                </activation>
            </profile>
            <profile>
                <id>dev</id>
                <properties> <!-- 环境标识,需要与配置文件的名称相对应 -->
                    <activatedProperties>dev</activatedProperties>
                </properties>
            </profile>
            <profile>
                <id>test</id>
                <properties>
                    <activatedProperties>test</activatedProperties>
                </properties>
            </profile>
            <profile>
                <id>prod</id>
                <properties>
                    <activatedProperties>prod</activatedProperties>
                </properties>
            </profile>
        </profiles>

    其中 activeByDefault 是设置默认环境

    最后在 application.properties 中配置 @activatedProperties@

    spring.profiles.active=@activatedProperties@

    配置完成后可以在 idea右侧的 Maven Projects 中就可以看到环境已经生成了并默认 local环境

    一个简单的环境隔离就OK了。

    测试:

    目前我们选择 prod 环境,把项目运行起来, 看到 【target -> classes】 是我们设置的prod环境 application-prod.properties

  • 相关阅读:
    oracle重命名数据库
    GridView分页的实现
    vb发post信息,非常简单,就一个函数
    第六周进度条
    软件工程作业
    进度条第五周
    四则运算设计03
    进度条03
    单元测试课堂作业
    个人作业02
  • 原文地址:https://www.cnblogs.com/zyulike/p/13572654.html
Copyright © 2011-2022 走看看