idea Maven 插件 项目多环境打包配置
背景
- 不同环境的配置文件不一样,打包方式也有差异
1. 准备配置文件

这里 local 为本地开发环境 可改为 dev 名称自定义 test 为测试环境 prod 为生产环境 根据项目业务自行定义
application.yml 配置:

spring:profiles:#对应pom中的配置active: @spring.profiles.active@
2. 配置 pom.xml
根据自身业务需求配置 pom 文件
目前我的项目业务添加如下:



<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version><!-- 打包跳过单元测试 --><skipTests>true</skipTests></properties><!-- maven多环境打包配置 --><profiles><!-- 本地开发环境 --><profile><id>local</id><properties><spring.profiles.active>local</spring.profiles.active></properties><!-- 设置为默认环境 --><activation><activeByDefault>true</activeByDefault></activation></profile><!-- 测试环境 --><profile><id>test</id><properties><spring.profiles.active>test</spring.profiles.active></properties></profile><!-- 生产环境 --><profile><id>prod</id><properties><spring.profiles.active>prod</spring.profiles.active></properties></profile><!--jdk1.8--><profile><id>jdk-1.8</id><activation><activeByDefault>true</activeByDefault><jdk>1.8</jdk></activation><properties><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target><maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion></properties></profile></profiles><build><finalName>AHL</finalName><plugins><!-- maven 打包插件 --><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><includeSystemScope>true</includeSystemScope></configuration></plugin><!-- maven 打包时跳过测试 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><version>2.20</version><configuration><skipTests>true</skipTests></configuration></plugin><plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId><version>1.3.7</version><configuration><overwrite>true</overwrite><verbose>true</verbose></configuration><dependencies><dependency><groupId>cn.dd</groupId><artifactId>mybatis-generator-comment</artifactId><version>1.0.2</version><scope>system</scope><systemPath>${pom.basedir}/src/main/webapp/WEB-INF/lib/mybatis-generator-comment.jar</systemPath></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.19</version></dependency><dependency><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId><version>1.3.7</version></dependency></dependencies></plugin></plugins><resources><resource><directory>src/main/resources</directory><!--开启过滤,用指定的参数替换directory下的文件中的参数--><filtering>true</filtering></resource></resources></build>
以下是可自定义修改 maven 插件配置文件包,必须添加
<properties><maven.build.timestamp.format>yyyyMMddHHmmss</maven.build.timestamp.format></properties><build><!-- 打包名格式:项目名-环境-打包时间.jar --><finalName>${project.artifactId}-${spring.profiles.active}-${maven.build.timestamp}</finalName><plugins><!-- maven 打包插件 --><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><!--打包时允许添加本地jar包--><includeSystemScope>true</includeSystemScope></configuration></plugin><!-- maven 打包时跳过测试 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><version>2.20</version><configuration><skipTests>true</skipTests></configuration></plugin><!-- 添加打包时间戳,没有需求可以不加 --><plugin><groupId>org.codehaus.mojo</groupId><artifactId>build-helper-maven-plugin</artifactId><version>3.2.0</version><executions><execution><id>timestamp-property</id><goals><goal>timestamp-property</goal></goals><configuration><name>module.build.timestamp</name><pattern>${maven.build.timestamp.format}</pattern><locale>zh_CN</locale><timeZone>Asia/Shanghai</timeZone></configuration></execution></executions></plugin></plugins><resources><resource><directory>src/main/resources</directory><!--开启过滤,用指定的参数替换directory下的文件中的参数--><filtering>true</filtering></resource></resources></build><!-- maven多环境打包配置 --><profiles><!-- 开发环境 --><profile><id>dev</id><properties><spring.profiles.active>dev</spring.profiles.active></properties><!-- 设置为默认环境 --><activation><activeByDefault>true</activeByDefault></activation></profile><!-- 生产环境 --><profile><id>prod</id><properties><spring.profiles.active>prod</spring.profiles.active></properties></profile><!-- 测试环境 --><profile><id>test</id><properties><spring.profiles.active>test</spring.profiles.active></properties></profile></profiles>
配置完成后 IDEA 的 maven 会出现勾选框

3. 配置启动项


配置完成后运行对应环境的启动项打包对应环境的包
4. 异常
配置完以后运行或者 clean 后运行,可能会出现 Do not use @ for indentation 异常,尝试切换配置后点击 reload 按钮后再运行。

相关文章:
idea Maven 插件 项目多环境打包配置
背景 不同环境的配置文件不一样,打包方式也有差异 1. 准备配置文件 这里 local 为本地开发环境 可改为 dev 名称自定义 test 为测试环境 prod 为生产环境 根据项目业务自行定义 application.yml 配置: spring:profiles:#对应pom中的配置active: spring.…...
密室逃脱游戏-第12届蓝桥杯省赛Python真题精选
[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第58讲。 密室逃脱游戏&…...
ES6-自学01
调用方法读取文件:如果失败就throw抛出err,成功则抛出data 2.使用promise封装,如果失败就改变状态为 reject(err) 如果成功就 resolve(返回成功的值) ,然后then,就可以获取返回的值,值toString()方法来把…...
PyQt5批量生成Checkbox及批量检查Checkbox的勾选状态
批量生成Checkbox并添加到TableWidget中 for i in range(10):checkbox_i QCheckBox(fCheckbox_{i}) # 生成Checkbox并命名为Checkbox_iself.ui_1.tableWidget_1.setCellWidget(i,1,checkbox_i) 批量检查勾选状态 # 批量生成Checkbox并存入列表 list_Checkbox_1 [] for …...
如何获得一个Oracle 23ai数据库(Virtual Appliance)
准确的说,是Oracle 23ai Free Developer版,因为企业版目前只在云上(OCI和Azure)和ECC上提供。 方法包括3种,本文介绍第1种: Virtual ApplianceRPM安装Docker 从此处下载虚拟机。 可以看到虚拟机需要4G内…...
跟TED演讲学英文:What moral decisions should driverless cars make by Iyad Rahwan
What moral decisions should driverless cars make? Link: https://www.ted.com/talks/iyad_rahwan_what_moral_decisions_should_driverless_cars_make Speaker: Iyad Rahwan Date: September 2016 文章目录 What moral decisions should driverless cars make?Introduct…...
【ITK配准】第七期 尺度(Metric)-规格化交互信息Metric
很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 公众号:VTK忠粉 前言 本文分享ITK中的互信息Metric,即itk::ITK中的互信息Metric,即itk::MutualInformationImageToImageMetric ,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞+关注,小易会继续努力分享…...
Python练习 20240508一次小测验
Python基础 10道基础练习题 1. 个人所得税计算器描述输入输出示例…...
桥梁施工污水需要哪些工艺设备
桥梁施工过程中产生的污水通常包含泥浆、油污、化学品残留等污染物。为了有效处理这些污水,确保施工现场的环境保护和合规性,通常需要以下工艺设备: 沉砂池:用于去除污水中的砂粒和其他重质无机物,减少对后续处理设备的…...
ADOP带你了解:长距离 PoE 交换机
您是否知道当今的企业需要的网络连接超出了传统交换机所能容纳的长度?这就是我们在长距离 PoE 交换机方面的专业化变得重要的地方。我们了解扩展网络覆盖范围的挑战,无论是在广阔的园区还是在多栋建筑之间。使用这些可靠的交换机,我们不仅可以…...
想要品质飞跃?找六西格玛培训公司就对了!
在当今复杂多变的市场环境中,企业的竞争早已不再是单一的价格或产品竞争,而是转向了对品质、效率和创新的全面追求。六西格玛,作为一种全球公认的质量管理方法论,正成为越来越多企业追求品质革命的重要工具。在这其中,…...
【工具】Office/WPS 插件|AI 赋能自动化生成 PPT 插件测评 —— 必优科技 ChatPPT
本文参加百度的有奖征文活动,更主要的也是借此机会去体验一下 AI 生成 PPT 的产品的现状,因此本文是设身处地从用户的角度去体验、使用这个产品,并反馈最真实的建议和意见,除了明确该产品的优点之外,也发现了不少缺陷和…...
4000定制网站,因为没有案例,客户走了
接到一个要做企业站点的客户,属于定制开发,预算4000看起来是不是还行的一个订单? 接单第一步:筛客户 从客户询盘的那一刻开始就要围绕核心要素:预算和工期,凡是不符合预期的一律放掉就好了,没必…...
内容安全(AV)
防病毒网关(AV)简介 基于网络侧 识别 病毒文件,工作范围2~7层。这里的网关指的是内网和外网之间的一个关口,在此进行病毒的查杀。在深信服中就有一个EDR设备,该设备就是有两种部署,一个部署在网关…...
互联网产品为什么要搭建会员体系?
李诞曾经说过一句话:每个人都可以讲5分钟脱口秀。这句话换到会员体系里面同样适用,每个人都能聊点会员体系相关的东西。 比如会员体系属于用户运营的范畴,比如怎样用户分层,比如用户标签及CDP、会员积分、会员等级、会员权益和付…...
富格林:学习安全策略远离欺诈亏损
富格林悉知,黄金交易市场的每一分都可能发生变化。市场的波动会让很多人欢喜或沮丧,有人因此赚得盆满钵满,但也有人落入陷阱亏损连连,在现货黄金投资中,需要学习正规的做单技能,制定正规合理做单策略&#…...
学QT的第二天~
小黑子鉴别界面 #include "mywidget.h" void MyWidget::bth1() { if(edit3 ->text()"520cxk"&&edit4 ->text()"1314520") { qDebug()<< "你好,真爱粉"; this->close(); } else { speecher->sa…...
QSplitter分裂器的使用方法
1.QSplitter介绍 QSplitter是Qt框架提供的一个基础窗口控件类,主要用于分割窗口,使用户能够通过拖动分隔条来调节子窗口的大小。 2.QSplitter的添加方法 (1)通过Qt Creator的界面设计工具添加; (2…...
AI-数学-高中52-离散型随机变量概念及其分布列、两点分布
原作者视频:【随机变量】【一数辞典】2离散型随机变量及其分布列_哔哩哔哩_bilibili 离散型随机变量分布列:X表示离散型随机变量可能在取值,P:对应分布在概率,P括号里X1表示事件的名称。 示例:...
Amazon IoT 服务的组件
我们要讨论的第一个组件是设备 SDK。 您的连接设备需要进行编码,以便它们可以与平台连接并执行操作。 Amazon Device SDK 是一个软件开发套件,其中包括一组用于连接、身份验证和交换消息的客户端库。 SDK 提供多种流行语言版本,例如 C、Node.…...
OpenClaw技能开发入门:为百川2-13B模型定制专属自动化模块
OpenClaw技能开发入门:为百川2-13B模型定制专属自动化模块 1. 为什么选择OpenClaw开发技能? 去年冬天,我为了每天早晨能自动获取天气信息并推送到飞书,尝试了不下五种自动化方案。要么需要复杂的服务器部署,要么灵活…...
OpenHarmony 5.0.2 音频驱动适配实战:从ADM配置到耳机/扬声器切换
1. OpenHarmony音频驱动适配背景与问题定位 最近在RK3568平台上适配OpenHarmony 5.0.2的音频功能时,遇到了一个典型问题:使用RK809音频芯片时,耳机可以正常发声,但内置扬声器完全没声音,而且插入耳机后扬声器也不会自动…...
GLM-4.1V量化模型实测:NPU部署精度仅差0.17%
GLM-4.1V量化模型实测:NPU部署精度仅差0.17% 【免费下载链接】GLM-4.1V-9B-Thinking-w8a8s-310 项目地址: https://ai.gitcode.com/Eco-Tech/GLM-4.1V-9B-Thinking-w8a8s-310 导语:近日,基于GLM-4.1V-9B-Thinking模型的量化版本GLM-4…...
如何用MAT修复老照片?3个实用技巧让破损图像重获新生
如何用MAT修复老照片?3个实用技巧让破损图像重获新生 【免费下载链接】MAT MAT: Mask-Aware Transformer for Large Hole Image Inpainting 项目地址: https://gitcode.com/gh_mirrors/ma/MAT 想象一下,你从祖辈那里继承了一张珍贵的黑白老照片&a…...
如何用ADB提升调试效率?掌握这8个核心技巧
如何用ADB提升调试效率?掌握这8个核心技巧 【免费下载链接】awesome-adb ADB Usage Complete / ADB 用法大全 项目地址: https://gitcode.com/gh_mirrors/aw/awesome-adb ADB(Android Debug Bridge)是Android调试的瑞士军刀࿰…...
5分钟搞定!用PySide2+Python快速搭建串口助手(附完整源码)
5分钟搞定!用PySide2Python快速搭建串口助手(附完整源码) 1. 为什么选择PySide2开发串口工具? 在嵌入式开发和物联网项目中,串口调试工具就像工程师的"瑞士军刀"。传统方案如C/QT开发周期长,而Py…...
别再死记硬背了!用Python脚本自动解析蓝牙BR/EDR/BLE测试报告(附代码)
用Python解放双手:自动化解析蓝牙测试报告的实战指南 每天面对堆积如山的蓝牙测试报告,你是否已经厌倦了手动整理数据的繁琐?当测试工程师们还在为Excel公式抓耳挠腮时,Python早已准备好了一套自动化解决方案。本文将带你从零开始…...
10个Pixelfed实例运营成功案例:去中心化照片分享平台实战经验 [特殊字符]
10个Pixelfed实例运营成功案例:去中心化照片分享平台实战经验 🚀 【免费下载链接】pixelfed Photo Sharing. For Everyone. 项目地址: https://gitcode.com/GitHub_Trending/pi/pixelfed Pixelfed是一个开源的去中心化照片分享平台,基…...
Zynq AXI DMA实战:从零配置S_AXIS_S2MM到M_AXIS_MM2S的完整数据流(Vivado 2023版)
Zynq AXI DMA实战:从零配置S_AXIS_S2MM到M_AXIS_MM2S的完整数据流(Vivado 2023版) 在嵌入式系统开发中,高效的数据传输往往是性能瓶颈所在。Zynq系列SoC凭借其独特的ARM处理器与FPGA可编程逻辑的紧密结合,为高性能数据…...
BGE-Reranker-v2-m3批量处理优化:提升高并发排序效率
BGE-Reranker-v2-m3批量处理优化:提升高并发排序效率 你是不是也遇到过这样的问题?在搭建RAG系统时,向量检索返回了一大堆文档,但真正相关的却没几个。大模型拿着这些“噪音”文档生成答案,结果要么答非所问ÿ…...
