美文网首页
SpringBoot发布打包动态切换环境

SpringBoot发布打包动态切换环境

作者: 我本佛山人 | 来源:发表于2017-09-07 09:22 被阅读0次

SpringBoot支持多种方式切换环境配置信息,如在配置文件中配置spring.profiles.active: dev,则表明加载application-dev.yml,但这种方式是写死在配置文件中的,一般在发布项目时需在命令行下根据指定环境动态改变spring.profiles.active的值,针对这种方式如我们使用的是MAVEN打包工具,可通过如下方式来改变。

1、更改application.xml

由spring.profiles.active=dev更改为spring.profiles.active=@profileActive@

2、更改pom.xml

<profile>
            <id>dev</id>
            <properties>
                <profileActive>dev</profileActive>
                <maven.test.skip>true</maven.test.skip>
                <scope.jar>compile</scope.jar>
            </properties>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        <profile>
            <id>test</id>
            <properties>
                <profileActive>test</profileActive>
                <maven.test.skip>true</maven.test.skip>
                <scope.jar>provided</scope.jar>
            </properties>
        </profile>
        <profile>
            <id>demo</id>
            <properties>
                <profileActive>demo</profileActive>
                <maven.test.skip>true</maven.test.skip>
                <scope.jar>provided</scope.jar>
            </properties>
        </profile>
        <profile>
            <id>pro</id>
            <properties>
                <profileActive>pro</profileActive>
                <maven.test.skip>true</maven.test.skip>
                <scope.jar>provided</scope.jar>
            </properties>
        </profile>

3、在maven打包的时候执行命令

mvn clean install -Dmaven.test.skip=true -Ptest

总结:参数-Ptest,表明会激活项目下的pom.xml配置的<profiles>标签下id为test的配置信息,其中默认指向dev,因为<activeByDefault>true</activeByDefault>,所以在eclipse、idea开发环境下只要项目是一个maven工程,开发调试时启动项目则spring boot 的配置文件
spring.profiles.active=@profileActive@也能动态识别出默认profile为dev。

至于为啥使用@profileActive@来作为变量的引用,当然这种引用方式也是可以更改的,具体可看如下图片。

image.png

自定义资源打包插件,则引用方式就变成#profileActive#:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <version>2.6</version>
    <configuration>
     <encoding>UTF-8</encoding>
     <delimiters>
      <delimiter>#</delimiter>
     </delimiters>
     <useDefaultDelimiters>false</useDefaultDelimiters>
    </configuration>
</plugin>

相关文章

网友评论

      本文标题:SpringBoot发布打包动态切换环境

      本文链接:https://www.haomeiwen.com/subject/tbibjxtx.html