美文网首页
Maven实现多环境切换

Maven实现多环境切换

作者: renyjenny | 来源:发表于2020-10-20 15:03 被阅读0次

    不同环境需要不同的配置,利用Maven的profile标签,即可简单快捷地实现多环境切换。

    使用步骤

    资源配置文件

    在resources文件下添加资源配置文件
    db.properties

    driver=${driver}
    url=${url}
    username=${username}
    password=${password}
    

    env.properties

    test.host=${test.host}
    

    查看编译后的文件,在target/classes下,这时候${}还没有取到值。


    image.png

    配置文件

    在src/main文件夹下新建文件夹filters,新建文件

    • filter-test.properties

    文件中配置环境变量参数

    # ip
    test.host=https://www.tianqiapi.com/api/
    
    # 数据库
    driver=com.mysql.cj.jdbc.Driver
    url=jdbc:mysql:///campus_terminal?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8
    username=root
    password=123
    

    resource配置

        <build>
            <resources>
                <resource>
                    <!-- 开启资源过滤,让Maven能解析资源文件中的Maven属性 -->
                    <directory>src/main/resources</directory>
                    <filtering>true</filtering>
                </resource>
            </resources>
    
            <!-- 指定使用的 filter文件 -->
            <filters>
                <filter>src/main/filters/filter-test.properties</filter>
            </filters>
        </build>
    

    现在再编译,就可以看到${}变量已经能取到值了。


    image.png

    多环境配置

    要配置多环境,则需要在pom.xml文件中使用profile配置环境

        <profiles>
            <profile>
                <id>test</id>
                <properties>
                    <env>test</env>
                </properties>
                <activation>
                    <!-- 默认使用此环境 -->
                    <activeByDefault>true</activeByDefault>
                </activation>
            </profile>
            <profile>
                <id>dev</id>
                <properties>
                    <env>dev</env>
                </properties>
            </profile>
            <profile>
                <id>product</id>
                <properties>
                    <env>product</env>
                </properties>
            </profile>
        </profiles>
    
    

    id是环境的唯一标识,这里定义了三个环境test、dev与product。再使用${env}修改之前filter里配置的文件名`。

            <!-- 指定使用的 filter文件 -->
            <filters>
                <filter>src/main/filters/filter-${env}.properties</filter>
            </filters>
    

    然后添加dev与product的配置文件。


    image.png

    切换环境

    如上步骤,就已经实现多环境配置了。要切换环境,有两种方法。
    一个是打开idea的maven面板,可以看到已经有profiles的选项,默认选中test。

    image.png
    或者通过命令行,使用-P参数加上profile中定义的id来指定环境资源。mvn clean test -Ptest

    Jenkins配置

    如果使用Jenkins来构建项目,可以通过参数化配置,指定运行环境。

    参数化配置

    image.png

    前置步骤

    image.png
    目标输入clean test -P%env%,这里的%env%即之前参数化配置的环境,也对应pom.xml文件中的build信息。

    构建项目

    image.png

    相关文章

      网友评论

          本文标题:Maven实现多环境切换

          本文链接:https://www.haomeiwen.com/subject/hkclmktx.html