zoukankan      html  css  js  c++  java
  • Spring boot项目分环境Maven打包,动态配置文件,动态配置项目

    Spring boot Maven 项目打包

    使用Maven 实现多环境 test dev prod 打包

    项目的结构

    在下图中可用看出,我们打包时各个环境需要分开,采用 application-环境.yml 的方式命名

    环境配置开始

    首先我们需要在application.yml文件中配置 spring.profiles.active = @profileActive@这里的proofileAction 是我们下面要用到的变量

    spring:
        profiles:
            active:  @profileActive@

    pom.xml

    我们需要在pom中指定finalname的名称,当然对于打包来说名称并不影响。
    实际上 不配置 resources节点也是可以的,在pom添加只是为了在打包中少几个配置文件。
    当然你可以通过include来选择需要导入哪个文件。

     <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
            <!-- 打包后文件名称:项目名-环境-版本 -->
            <finalName>${project.artifactId}-${profileActive}-${project.version}</finalName>
            <resources>
                <resource>
                    <directory>src/main/resources</directory>
                    <!-- 开启过滤替换功能-->
                    <filtering>true</filtering>
                    <includes>
                        <!-- 项目打包完成的包中只包含当前环境文件 -->
                        <include>application.yml</include>
                        <include>application-${profileActive}.yml</include>
                    </includes>
                </resource>
            </resources>
        </build>
    
        <!-- 多环境配置方案 -->
        <profiles>
            <profile>
                <id>dev</id>
                <properties>
                    <profileActive>dev</profileActive>
                </properties>
                <activation>
                    <!-- 默认情况下使用dev开发配置 如 打包时不包含 -p 参数-->
                    <activeByDefault>true</activeByDefault>
                </activation>
            </profile>
            <!-- 打包命令package -P test -->
            <profile>
                <id>test</id>
                <properties>
                    <profileActive>test</profileActive>
                </properties>
            </profile>
            <!-- 打包命令package -P prod -->
            <profile>
                <id>prod</id>
                <properties>
                    <profileActive>prod</profileActive>
                </properties>
            </profile>
        </profiles>

    在pom中profiles节点才是分项目打包的关键,通过profile节点可以在打包时动态的去更新我们在application.xml中的配置值

    在编译项目时,可以使用 -P 参数指定需要使用的 profile 的 id,比如下面命令将会使用 dev profile:

    mvn clean package -P dev

    如果想使用test,只需要改为以下即可

    mvn clean package -Ptest

    假如不指定 -P 参数的话,则会使用 activeByDefault=true 的一项(即 dev)。

    原文:https://blog.csdn.net/qq_22327273/article/details/83548138
    参考文档:

    LuckyZhouStar Maven中profile和filtering实现多个环境下的属性过滤

  • 相关阅读:
    zbb20180929 dubbo+zookeeper
    zbb20180929 Linux高可用之Keepalived
    zbb20180929 zk Zookeeper的功能以及工作原理
    zbb20180927 Union与Union All的区别
    zbb20180927 MySQL MyISAM InnoDB区别
    zbb20180921 spring事物的七种事物传播属性行为及五种隔离级别
    zbb20180921 java,md5,MD5加密+加盐
    zbb20180921 java,js,javascript 前端加密后端解密Base64通用加密处理
    zbb20180921 springboot 全局异常处理 404 500
    zbb20180919 db,mysql MySQL慢查询
  • 原文地址:https://www.cnblogs.com/007sx/p/10991979.html
Copyright © 2011-2022 走看看