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实现多个环境下的属性过滤

Spring boot项目分环境Maven打包,动态配置文件,动态配置项目的更多相关文章

  1. [DEBUG] spring boot在eclipse中用maven打包成jar访问templates报500错误

    更新:打war包的话只要把html文件放在resources/templates下即可,根本不需要放外面. 配置application.yml和templates放外面这种做法,打war包确实不行. ...

  2. 部署项目问题(maven打包jar不对应,导致启动时一直找不到某个类)

    项目是springboot+maven  打包用maven的插件package 下面是打包后的目录结构  project-1.0 和project-1.0.tar.gz是一样的  区别就是一个是压缩包 ...

  3. 快速搭建Spring Boot + Apache Shiro 环境

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 一.Apache Shiro 介绍及概念 概念:Apache Shiro是一个强大且易用的Java安全框 ...

  4. 【转】Spring Boot干货系列:(二)配置文件解析

    转自:Spring Boot干货系列:(二)配置文件解析 前言 上一篇介绍了Spring Boot的入门,知道了Spring Boot使用"习惯优于配置"(项目中存在大量的配置,此 ...

  5. Spring Boot干货系列:(二)配置文件解析

    Spring Boot干货系列:(二)配置文件解析 2017-02-28 嘟嘟MD 嘟爷java超神学堂   前言 上一篇介绍了Spring Boot的入门,知道了Spring Boot使用“习惯优于 ...

  6. maven打包 tomcat运行pom配置 或 打成jar包

    maven打包 tomcat运行pom配置,同时还需要配置org.apache.tomcat.maven插件,这里省略. <groupId>com.company</groupId& ...

  7. Spring Boot 揭秘与实战(四) 配置文件篇 - 有哪些很棒的特性

    文章目录 1. 使用属性文件2. YAML文件 1.1. 自定义属性 1.2. 参数引用 1.3. 随机数属性 1.4. application-{profile}.properties参数加载 3. ...

  8. 【spring boot】12.spring boot对多种不同类型数据库,多数据源配置使用

    2天时间,终于把spring boot下配置连接多种不同类型数据库,配置多数据源实现! ======================================================== ...

  9. Spring Boot中的缓存支持(一)注解配置与EhCache使用

    Spring Boot中的缓存支持(一)注解配置与EhCache使用 随着时间的积累,应用的使用用户不断增加,数据规模也越来越大,往往数据库查询操作会成为影响用户使用体验的瓶颈,此时使用缓存往往是解决 ...

随机推荐

  1. POI 读取Excel文件 并解析JSON数据

    package skuPrice; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundEx ...

  2. Idea导入maven项目没有识别

    选中module的pom.xml,右键,选择" add as maven project",idea会识别该pom的项目  

  3. 快速安装Python3+RobotFrameowork自动化测试环境

    1. 安装Python3(笔者这里安装的Python3.6.5) 安装 robotframework :   pip install robotframework -U pip install rob ...

  4. Python的网页解析库-PyQuery

    PyQuery库也是一个非常强大又灵活的网页解析库,如果你有前端开发经验的,都应该接触过jQuery,那么PyQuery就是你非常绝佳的选择,PyQuery 是 Python 仿照 jQuery 的严 ...

  5. cube-slide组件的应用

    <template> <div> <cube-slide :data="items"/> </div> </template& ...

  6. 转 java 8 lamba stream

    一直在写中间件相关的代码,提供SDK给业务方使用,但很多业务方还一直停留在1.7版本,迟迟不升级,为了兼容性,不敢在代码中使用Java8的一些新特性,比如Stream之类的,虽然不能用,但还是要学一下 ...

  7. QT源码分析:QObject

    QT框架里面最大的特色就是在C++的基础上增加了元对象系统(Meta-Object System),而元对象系统里面最重要的内容就是信号与槽机制,这个机制是在C++语法的基础上实现的,使用了函数.函数 ...

  8. 前端与编译原理 用js去运行js代码 js2run

    # 前端与编译原理 用js去运行js代码 js2run 前端与编译原理似乎相隔甚远,各种热门的框架都学不过来,那能顾及到这么多底层呢,前端开发者们似乎对编译原理的影响仅仅是"抽象语法树&qu ...

  9. Elasticsearch进阶篇(一)~head插件的安装与配置

    1.安装node.js 1.1.通过官网下载二进制安装包 https://nodejs.org/en/download/ 选择对应的版本,右键复制下载链接,进入linux目录,切换到要安装目录的磁盘. ...

  10. 关于一致性hash,这可能是全网最形象生动最容易理解的文档,想做架构师的你来了解一下

    问题提出 一致性hash是什么?假设有4台缓存服务器N0,N1,N2,N3,现在需要存储数据OBJECT1,OBJECT2,OBJECT3,OBJECT4,OBJECT5,OBJECT5,OBJECT ...