spring-boot学习:六、配置多环境和打包

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/guangcaiwudong/article/details/99833222

由于开发、测试和生产环境配置都不一样,如果手动替换application.properties文件容易出错,希望各环境的配置文件独立开,环境与配置文件自动匹配,就需要用到maven的profiles了。

1. 分别创建多环境application.properties
在这里插入图片描述

2. pom.xml定义多环境
1)在dependencies后面加入profiles

<profiles>
    <profile>
        <id>dev</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
            <profiles.activation>dev</profiles.activation>
        </properties>
    </profile>
    <profile>
        <id>test</id>
        <properties>
            <profiles.activation>test</profiles.activation>
        </properties>
    </profile>
    <profile>
        <id>prod</id>
        <properties>
            <profiles.activation>prod</profiles.activation>
        </properties>
    </profile>
</profiles>

2)在build中加入,不包含config目录,加入config下当前环境的application.properties文件,可按需扩展;${profiles.active}指profiles中当前激活的

<build>
    <finalName>${name}-${profiles.activation}</finalName>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <excludes>
                <exclude>config/</exclude>
            </excludes>
        </resource>
        <resource>
            <directory>src/main/resources/config/${profiles.activation}</directory>
            <filtering>true</filtering>
            <includes>
                <include>application.properties</include>
            </includes>
        </resource>
    </resources>
</build>

3. 分多环境创建打包启动程序build-xxx.bat

build-dev.bat:

mvn clean package

build-test.bat:

mvn clean package -P test

build-release.bat:

mvn clean package -P prod

4. 启动build-xxx.bat即可对相应环境打包

5. 开发环境中,在IDE中启动项目,默认读取confi/dev中的配置文件。
如本例中,默认启动端口为8081,如果发现不正确,可以检查一下target/classes目录下是否包含application.properties且端口是否正确,如果不正确可以重新build工程(遇到过IDEA将配置文件中的端口改成了8080的情况)

猜你喜欢

转载自blog.csdn.net/guangcaiwudong/article/details/99833222