Maven部署打包多环境(开发、测试、生产)配置教程

Maven打包多环境(开发、测试、生产)配置教程

  • 1、多环境配置的必要性
    • 1.1 没有进行多环境配置进行的操作复杂性
    • 1.2 不影响运行时配置
  • 2、配置方案
    • 2.1 添加profile属性
    • 2.1 添加两个插件
    • 2.3 主配置文件中添加插值变量
  • 3、效果展示
    • 3.1 勾选`prod`环境
    • 3.2 控制台输出结果

1、多环境配置的必要性

1.1 没有进行多环境配置进行的操作复杂性

  1. 配置重复:在每个环境(开发、测试、生产)中,可能需要使用相同的插件、依赖和配置项。这样会导致在每个环境中进行重复的配置。
  2. 环境特定配置:某些配置项可能仅适用于特定环境(例如,数据库连接信息、文件路径等)。如果不进行多环境配置,这些特定于环境的配置项可能会被错误地应用到其他环境。
  3. 构建过程复杂化:由于没有将不同环境的配置分离,开发人员可能需要在每个环境中手动执行一系列配置和构建操作。这样会导致构建过程变得复杂且容易出错。
  4. 维护困难:当项目需要调整配置以适应新环境时,需要在每个环境配置文件中进行相应的修改。这将导致配置文件的维护变得困难且容易出错。

1.2 不影响运行时配置

执行多环境自动化配置后,不会影响我们再IDEA上直接执行RUN操作,此时,主文件的配置会被下图配置替换。
Maven部署打包多环境(开发、测试、生产)配置教程_第1张图片

2、配置方案

2.1 添加profile属性

请注意下属性片段中的注释。

>
        >
            <!--不同环境Profile的唯一id-->
            dev
            
                true
            
            
                
                dev
            
        >
        >
            >prod>
            >
                >false>
            >
            >
                >prod>
            >
        >
        >
            >test>
            >
                >false>
            >
            >
                >test>
            >
        >
    >

完成该属性的增加后,Profiles菜单下就出现三个自定义的环境,如下图所示默认激活的是dev环境。

Maven部署打包多环境(开发、测试、生产)配置教程_第2张图片

2.1 添加两个插件

  1. maven-resources-plugin
    用于将资源配置文件中的动态变量进行替换。

  2. maven-antrun-plugin
    用于追加自定义日志消息,在打包时候,在程序执行完毕后控制台打印这是构建哪个环境的日志,使得打包的环境一目了然,避免出现打包错误,导致打包时使用了一个环境的配置,部署时环境搞错了。
    其中 就引用了environment属性。

    <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <executions>
                    <execution>
                        <id>default-resources</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy-resources</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>target/classes</outputDirectory>
                            <useDefaultDelimiters>false</useDefaultDelimiters>
                            <delimiters>
                                <delimiter>@</delimiter>
                            </delimiters>
                            <resources>
                                <resource>
                                    <directory>src/main/java</directory>
                                    <includes>
                                        <include>**/*.xml</include>
                                    </includes>
                                    <filtering>true</filtering>
                                </resource>
                                <resource>
                                    <directory>src/main/resources/</directory>
                                    <filtering>true</filtering>
                                    <includes>
                                        <include>**/*.yml</include>
                                    </includes>
                                </resource>
                                <resource>
                                    <directory>src/main/resources/</directory>
                                    <excludes>
                                        <exclude>**/*.yml</exclude>
                                    </excludes>
                                </resource>
                            </resources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-antrun-plugin</artifactId>
                <version>1.3</version>
                <executions>
                    <execution>
                        <id>print-custom-info</id>
                        <phase>package</phase>
                        <configuration>
                            <tasks>
                                <echo message="[INFO] ${environment} 环境打包执行成功"/>
                            </tasks>
                        </configuration>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

        </plugins>

2.3 主配置文件中添加插值变量

Maven部署打包多环境(开发、测试、生产)配置教程_第3张图片
请注意:主配置文件中引用的环境变量使用两个@,有的是${},这个可以在2.1中的插件进行配置。

>
  >@>
>

3、效果展示

3.1 勾选prod环境

Maven部署打包多环境(开发、测试、生产)配置教程_第4张图片

3.2 控制台输出结果

在这里插入图片描述

你可能感兴趣的:(#,Maven,maven,intellij-idea,数据库)