springboot项目分环境maven打包,动态配置文件,动态配置项目(代码片段)

007sx 007sx     2022-12-18     484

关键词:

Spring boot Maven 项目打包

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

项目的结构

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

技术图片

环境配置开始

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

spring:
    profiles:
        active:  @[email protected]

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

 

springboot实现动态配置及项目打包部署上线(代码片段)

写在前面🍁个人主页:微枫Micromaple✨本期专栏:《0到1项目搭建》欢迎订阅学习~📌源码获取:GitCode、GitHub、码云Gitee持续更新中,别忘了star喔~本文讲解的是如何使用Spring动态配置文件,实现不同环... 查看详情

springboot项目使用maven-assembly-plugin根据不同环境打包成tar.gz或者zip

spring-boot-assembly在springboot项目中使用mavenprofiles和mavenassembly插件根据不同环境打包成tar.gz或者zip将springboot项目中的配置文件提取到外部config目录中将springboot项目中的启动jar包移动到boot目录中将springboot项目中的第三方依赖jar包移... 查看详情

springboot项目打包问题集锦:jar依赖多出boot-inf文件夹问题/多环境动态打包/缺少boot-inf目录问题等...

SpringBoot项目打包boot-inf文件夹的问题spring-bootmaven打包,一般pom.xml文件里会加<plugin>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-maven-plugin</artifactId&g 查看详情

springboot项目打包-assembly

参考技术A项目部署并不是一个单一的jar包就完事,实际上除了jar包还有很多其他文件,比如sql脚本、安装脚本等其他文件,本文要说的就是如何将这些文件统一打包成一个压缩包文件,直接上传linux服务器安装。一个项目从立项... 查看详情

springboot项目打包部署到阿里云服务器通过maven插件制作docker镜像部署项目容器配置生产环境

...运行的,而且要被其他模块引入的,所以该模块不能采用springboot打包方式制作jar包,否则其他模块无法引入通用模块。1、修改通用模块,设置模块为非Springboot项目<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/... 查看详情

springboot+maven开发环境配置,本地运行时使用dev环境,打包时使用prod环境(代码片段)

学习过springboot的都应该知道springboot可以根据不同的开发环境(本地环境、生产环境)来加载不同的配置文件的因为本地测试的数据库和部署在服务器上的数据库不一样,所以我把本地测试的数据库配置和服务器的数... 查看详情

springboot+maven开发环境配置,本地运行时使用dev环境,打包时使用prod环境(代码片段)

学习过springboot的都应该知道springboot可以根据不同的开发环境(本地环境、生产环境)来加载不同的配置文件的因为本地测试的数据库和部署在服务器上的数据库不一样,所以我把本地测试的数据库配置和服务器的数... 查看详情

springboot+maven开发环境配置,本地运行时使用dev环境,打包时使用prod环境(代码片段)

学习过springboot的都应该知道springboot可以根据不同的开发环境(本地环境、生产环境)来加载不同的配置文件的因为本地测试的数据库和部署在服务器上的数据库不一样,所以我把本地测试的数据库配置和服务器的数... 查看详情

maven打包springboot项目并且运行

1.进入项目控制台,输入命令行进行打包mvncleanpackage 2.进入jar包位置(项目的target下)输入jar包名称java-jarsecuritydemo1-0.0.1-SNAPSHOT.jar  查看详情

springboot简单打包部署(附工程)

前言本文主要介绍SpringBoot的一些打包事项和项目部署以及在其中遇到一些问题的解决方案。SpringBoot打包在SpringBoot打包这块,我们就用之前的一个web项目来进行打包。首先需要明确的是,该项目打包的形态是可执行的jar包,还是... 查看详情

springboot+docker项目打包(jar)和部署

参考技术A一、打包SpringBoot项目1.检查pom文件是否有maven打包插件2.选择IDEA右侧Maven,点击install(如果配置了maven的环境变量,则可以在控制台输入:mvninstall命令,同样可以打包jar包)等待maven打包,当控制台出现下列日志时表示打... 查看详情

springboot+maven多模块项目(创建依赖打包可执行jar包部署测试)完整流程

转:https://blog.csdn.net/baidu_41885330/article/details/81875395 开发环境:IDEA,         SprngBoot2.0.4,        &nbs 查看详情

springboot(maven)+docker打包(代码片段)

SpringBoot(Maven)+Docker打包本文可以实现:将SpringBoot项目从GitHubclone到服务器上后,一条命令直接完成依赖下载-编译-镜像生成-容器运行。注意:本文SpringBoot项目为单机部署,即只在一台服务器进行部署,并使... 查看详情

springboot+maven聚合多项目打包成jar

已我最近自己在玩的一个DEMO为例taosir为pom.xml,其他子项目均为其modules,且为jar项目eureka为注册中心、workflow为提供者、entrance为调用方entrance、workflow依赖于common所以此处我需要将eureka、workflow、entrance三个打包成jar,那么它们的... 查看详情

springboot23分模块开发

...发环境说明  JDK:1.8  MAVEN:3.5  IDEA:2017.2.5  SpringBoot:2.0.3.RELEASE 2创建SpringBoot项目  2.1项目信息  2.2添加项目依赖  2.3修改pom文件    添加lombok依赖、修改devtools、修改plugin<?xmlversion="1.0"encoding="UTF-8"... 查看详情

springboot项目的打包发布

Eclipse打包发布项目打包项目 首先需要将项目编译的文件删除,执行【RunAs】->【Mavenclean】如果这个时候项目报错,在pom.xml文件中添加以下代码过滤掉单元测试<plugin><groupId>org.apache.maven.plugins</groupId><artifactId... 查看详情

springboot简单打包部署(附工程)

SpringBoot简单打包部署(附工程)前言本文主要介绍SpringBoot的一些打包事项和项目部署以及在其中遇到一些问题的解决方案。SpringBoot打包在SpringBoot打包这块,我们就用之前的一个web项目来进行打包。首先需要明确的是,该项目打包... 查看详情

springboot系列之基于mongorepository实现分页(代码片段)

...-mongodb实现MongoDB的分页,仅供参考环境准备开发环境JDK1.8SpringBoot2.2.1Maven3.2+开发工具IntelliJIDEAsmartGitNavicat15Maven配置新建一个SpringBoot下面,在pom配置文件里加上,dependencyManagement进行Springboot统一的版本控制<properties><java.vers... 查看详情