SpringBoot使用profile结合maven实现多环境配置

Java项目多环境配置

一、使用Maven方式

比较正式分:
本地环境(localhost)、开发环境(development) 、测试环境(test)、生产环境打包(production)。
不过我个人喜欢分三类:
本地环境(开发环境)(local)、测试环境(dev)、生产环境(prod)。
在平常开发的过程中,我们的项目配置文件经常有有几套分别对应自己本地的环境、开发环境、测试环境、以及生产环境。因为在不同的环境中项目的相关配置也会有相关的不同,我们在不同的环境中部署就要手动修改为对应环境的配置,这样太麻烦了以及这样也会很容易出错。
目前JAVA相关的项目基本都是使用Maven来进行构建。在maven中实现多环境的构建可移植性需要使用profile,通过不同的环境激活不同的profile来达到构建的可移植性。
接下来我们就通过maven的相关配置来在打包时指定各个环境对应配置文件。

第一步 pom文件中的profile

首先时pom文件中profile配置

  <project>
	<!--....其他包-->
   <!-- Maven控制Spring Profile -->
    <profiles>
        <profile>
        	<!-- 本地开发环境 -->
            <id>local</id>
            <activation>
            	<!-- 设置默认值-->
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <profileActive>local</profileActive>
            </properties>
        </profile>
        <profile>
        	<!-- 测试环境  -->
            <id>dev</id>
            <properties>
                <profileActive>dev</profileActive>
            </properties>
        </profile>
        <profile>
         <!-- 生产环境 -->
            <id>prod</id>
            <properties>
                <profileActive>prod</profileActive>
            </properties>
        </profile>
    </profiles>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <mainClass>com.mango.Application</mainClass>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>

        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <excludes>
                    <exclude>application*.yml</exclude>
                </excludes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <!-- 是否替换@xx@表示的maven properties属性值 -->
                <filtering>true</filtering>
                <includes>
                    <include>application.yml</include>
                    <include>application-${profileActive}.yml</include>
                </includes>
            </resource>
        </resources>

    </build>
</project>

第二步 工程目录建立对应目录

多个环境创建多个者文件,一般application.yml 存放不变化(不分环境)的属性,其他文件存放对应环境的属。
因为maven的配置文件一般都是在src/main/resource目录下,所以我们在resource目录下面分别新建local、dev、prod这四个文件目录;如下图:
在这里插入图片描述
在resources目录下有一个application.yml文件,添加
spring:
profiles:
active: @profileActive@
在这里插入图片描述
项目编译
通过在运行maven命令时指定不同的profile即可构建不同环境需要的war包或发布到不同的环境了 。如:

mvn clean package -Pprod

这样我们就是打包生产环境的配置了。
如果我们是idea开发的话,我们可以不用些命令的方式
我们打开idea的maven窗口
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值