springboot项目配置多环境打包部署遇到的问题总结

因为项目用到了多个环境,springboot项目在打包的时候要根据环境进行初始化相关设置,因此需要在pom文件中配置多环境变量
pom配置文件如下:

<profiles>
        <profile>
            <id>dev</id>
            <properties>
                <profileActive>dev</profileActive>
            </properties>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        <profile>
            <id>test</id>
            <properties>
                <profileActive>test</profileActive>
            </properties>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
        </profile>
        <profile>
            <id>online</id>
            <properties>
                <profileActive>online</profileActive>
            </properties>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
        </profile>
    </profiles>

profile文件指定打包启动加载的哪个配置文件,可根据环境的多少分别进行配置

<resources>
     <resource>
         <directory>src/main/resources</directory>
         <includes>
             <include>application-${profileActive}.yml</include>
             <include>application.yml</include>
             <include>**/*</include>
         </includes>
         <filtering>true</filtering>
     </resource>
 </resources>

resource配置指定系统配置文件加载的路径
其中的include表示加载的哪些文件到容器中,如果没有指定所有的配置加载到容器中,在配置文件中的classpath:/**方式引用的文件不会加载到容器中,导致启动失败

<plugin>
     <groupId>org.apache.maven.plugins</groupId>
     <artifactId>maven-resources-plugin</artifactId>
     <configuration>
         <delimiters>
             <delimiter>@</delimiter>
         </delimiters>
         <useDefaultDelimiters>false</useDefaultDelimiters>
     </configuration>
 </plugin>
 plugin指定maven打包时需要取得参数,根据参数来设置打包的环境的配置文件
 另外需要建一个application.yml或者application.propertites文件指定启动文件环境
 application.yml方式配置如下:
 spring:
  profiles:
    active: @profileActive@

遇到了问题记录一下,希望可以学习更进一步,欢迎指正

猜你喜欢

转载自blog.csdn.net/sonlife/article/details/79123163