Maven实现多环境切换

2020-10-20  本文已影响0人  renyjenny

不同环境需要不同的配置,利用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,新建文件

文件中配置环境变量参数

# 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
上一篇下一篇

猜你喜欢

热点阅读