maven之多环境打包的实现

2020-06-14  本文已影响0人  mysimplebook

        实现不同环境的打包,就是在pom.xml中定义不同的环境配置,然后将需要的配置打包入最终的压缩包中。

        首先定义几个不同的配置文件,然后在pom.xml中定义几个不同的<profile>标签。每个profile可以看作是POM的一部分配置,我们可以根据不同的环境应用不同的profile,从而达到不同环境使用不同的POM配置的目的。

        假如配置了3种项目运行环境,在src/main/resources目录下增加如下环境配置

├── conf

│  ├── dev

│  │  ├── application.properties

│  │  ├── conf.properties

    │  ├── db.properties

│  ├── online

│  │  ├── application.properties

│  │  ├── conf.properties

│  │  ├── db.properties

│  └── test

│  │  ├── application.properties

│  │  ├── conf.properties

│  │  ├── db.properties

在(子)项目pom.xml中<project>标签下加入如下的<profiles>标签,

    <!-- 多环境打包 start -->

    <profiles>

        <!-- 开发环境配置 -->

        <profile>

            <id>dev</id>

            <properties>

                <profiles.active>dev</profiles.active>

            </properties>

            <activation>

                <activeByDefault>true</activeByDefault>

            </activation>

        </profile>

        <!-- 测试环境配置 -->

        <profile>

            <id>test</id>

            <properties>

                <profiles.active>test</profiles.active>

            </properties>

        </profile>

        <!-- 正式环境 -->

        <profile>

            <id>online</id>

            <properties>

                <profiles.active>online</profiles.active>

            </properties>

        </profile>

    </profiles>

    <!-- 多环境打包 end -->

        在profile标签中定义一个 id 标签,这样就可以将不同环境的配置区分开。而变量profiles.active的值对应了具体的环境配置名称。为了引用这些环境配置,需要在pom.xml文件中使用该变量的值,在build->resources标签下增加如下内容,

        <resource>

                <directory>src/main/resources/conf/${profiles.active}</directory>

            </resource>

        在 pom 中配置好后就可以在 mvn 命令中用-P参数激活指定 id 对应的 profile 进行动态构建了。比如打测试环境包,执行:

                                             mvn clean install -Ptest

        这样将src/main/resources/conf/test下的配置打包入项目。

上一篇下一篇

猜你喜欢

热点阅读