Maven插件-打包时多环境配置文件设置

同一个项目,测试、生产环境配置内容是不同的,如何通过Maven插件在不同的环境下使用不同的配置文件呢?

项目结构

Profile

定义一些列配置信息,然后通过命令激活指定信息,一般在项目pom.xml文件中配置。

<profiles><profile><id>dev</id><properties><env>dev</env></properties><activation><activeByDefault>true</activeByDefault> <!-- 默认环境 --></activation></profile><profile><id>qa</id><properties><env>qa</env></properties></profile><profile><id>prd</id><properties><env>prd</env></properties></profile></profiles>

mvn打包命令:

mvn clean package -Pdev/qa/prd

build中resource

        <!-- java代码路径 --><sourceDirectory>src/main/java</sourceDirectory><!-- test代码路径 --><testSourceDirectory>src/test/java</testSourceDirectory><!-- 测试资源路径 --><testResources><testResource><directory>src/test/resources</directory></testResource></testResources><!-- 资源路径可以配置多个 --><resources><resource><directory>src/main/resources</directory></resource><resource><directory>src/wfconfig/${env}</directory><!-- 资源文件不包含web.xml --><excludes><exclude>*.xml</exclude></excludes></resource></resources>

通过配置resouces,我们就可以通过mvn clean package -Pqa指定不同环境下的配置文件,但是该方法仅仅可以把配置文件加载到webapp/classes文件夹下,无法替换webapp/WEB-INF/web.xml文件。

maven-war-plugin插件

        <plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-war-plugin</artifactId><version>2.6</version><configuration><failOnMissingWebXml>false</failOnMissingWebXml><!-- 使用web.xml文件路径 --><webXml>src/wfconfig/${env}/web.xml</webXml><!-- 将某些需要的文件拷贝到WEB-INF下 --><webResources><resource><directory>src/wfconfig/${env}</directory><targetPath>WEB-INF</targetPath><includes><include>**/*.xml</include></includes></resource></webResources></configuration></plugin></plugins>

配置后在打包时即可按照-P参数从指定配置文件中拉去web.xml文件,maven-war-plugin更多操作参见(https://maven.apache.org/plugins/maven-war-plugin/war-mojo.html)。

完整示例

https://github.com/Wang-Jun-Chao/JavaEE_And_SpringBoot/tree/54322bd8d56f4b92ce2886aea9671f5a1c6cdbbe/002-Maven%E6%8F%92%E4%BB%B6-%E6%89%93%E5%8C%85%E6%97%B6%E5%A4%9A%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E8%AE%BE%E7%BD%AE

Maven插件-打包时多环境配置文件设置相关推荐

  1. springboot多模块打包指定子模块环境配置文件

    springboot多模块打包指定子模块环境配置文件 父pom.xml maven 命令:mvn clean package -Dmaven.test.skip=true -P uat 命令解析:清c ...

  2. springboot使用maven插件打包项目

    springboot使用maven插件打包项目 springboot将项目打包成jar包时,默认会将所有依赖都打包进去,这样使得打包后的jar包十分庞大.可以通过配置maven插件来打包项目,将资源文 ...

  3. Maven精选系列--过滤不同环境配置文件

    转载自 Maven精选系列--过滤不同环境配置文件 背景介绍 项目有开发.测试.生产至少有这三个环境,所需要的配置信息肯定不一样,所以打包的时候可以指定使用哪一个配置文件. 如测试环境使用:mvn p ...

  4. maven插件打包exec_Exec Maven插件–从Maven Build运行Java程序

    maven插件打包exec Maven exec plugin allows us to execute system and Java programs from the maven command ...

  5. Maven 插件打包java 后台

    maven 插件 打包如下图所示: 截图所示是IDE 工具,右键点击install ,然后选择Run Maven Build 执行打包 打包之后的控制台出现如下截图所示,说明打包成功 maven 对应 ...

  6. maven 打包时缺少文件_解决Intellij Idea下使用Maven项目打包时部分文件缺失问题

    问题 Idea被越来越多的java开发者青睐,特别是丰富的插件极大方便了开发者.Idea虽然没有Eclipse的繁琐配置,但也会出现一些问题.问题如下: 一.在进行Maven项目打包的时候,会发现有的 ...

  7. docker 打包_Springboot2.0学习11 使用maven插件打包docker部署应用

    一.本文目标 使用Maven插件构建SpringBoot应用的docker镜像 镜像推送至Docker Registry 启动容器 本文开发环境 : jdk1.8 maven idea SpringB ...

  8. maven讲解1:maven插件下载安装、环境变量配置、仓库配置

    前言:idea或eclipse工具想要开发maven项目时,本地电脑需要下载并安装好maven插件. 另一个前置条件:本地电脑上JDK安装好了 一.下载maven插件 步骤1: 打开maven官网:h ...

  9. 实用Maven插件 - 打包

    背景 工作中经常遇到打包,但往往得过且过,使用命令mvn clean install dDmaven.skip.test=true,一行命令编译完出jar包,手动替换到环境验证就完了.至于jar包在C ...

最新文章

  1. CSS——float属性备忘笔记
  2. Oracle隐含参数:_allow_resetlogs_corruption
  3. windows10下 tensorflow2.0 gpu 安装
  4. Jedis干什么用的
  5. 神奇的用法_续行符——反斜杠
  6. php写简单的随机验证码
  7. 4.3/4.4 磁盘分区
  8. scapy能干点啥?
  9. 备忘录模式(Memento Pattern)
  10. SSH自动生成数据库
  11. vb.net它SqlHelper制备及应用
  12. 三星s10更新Android10,三星S10官方国行安卓9完整固件升级更新包:CHC-G9730ZCU1ASF1
  13. Google SketchUp Cookbook: (Chapter 2) Following Paths with Follow Me
  14. 最近心血来潮,准备更新博客
  15. 你吃的外卖,半年前就做好了
  16. 使用IDLE进行编程
  17. 金融贷超、贷款行业防止撸贷方案分析
  18. Unicode中的UTF-8, UTF-16, UTF-16LE, UTF-16BE编码及转换 | Java基础
  19. ICCV2021:Rethinking Coarse-to-Fine Approach in Single Image Deblurring
  20. Linux常用命令介绍(20个)——《鸟哥的Linux的私房菜》

热门文章

  1. 瓴犀强大SRM系统功能模块,可以为企业解决哪些问题
  2. java毕业设计企业资产管理系统mybatis+源码+调试部署+系统+数据库+lw
  3. 实力认证!中睿天下荣获“创客北京2022”软件与信息技术产业项目十强
  4. 计算机的excel的知识点,计算机知识点-第四部EXCEL.doc
  5. 遗传算法求解机场停机位优化分配(含源代码)
  6. nrf52 SDK15 TWI驱动MAG311x
  7. Ajax实现局部刷新
  8. Visual Paradigm 教程[UML]:如何在UML中绘制时序图?
  9. 基于KSWEB服务器与NAT123端口映射技术-----利用闲置安卓手机搭建网站服务器
  10. Thinkphp3.2开发阿里云短信验证码