maven profile filter 线上线下分开打包配置

maven自动选择不同的配置文件打包profile+filter

1. profile:
[要点:] activeByDefault默认激活,不用再mvn命令时指定额外参数;
[注意:] 使用非默认的配置,要在编译时指定:如,要在生产环境打包[并跳过单元测试]:
mvn clean package -Pproduct [-Dmaven.test.skip=ture]

如果mvn clean package:

a. 默认加载profile-dev.properties来打包
b. 可以替换的内容范围是:
src/main/resources/*.xml|*.properties...
src/main/java/*.xml
<project>
    <build>
        <finalName>project-name</finalName>
        <!-- 启用filter功能为resources中的变量赋值 -->  
        <resources>  
            <resource>  
                <directory>src/main/resources</directory>
                    <includes>
                        <include>**/*</include>
                    </includes>
                    <filtering>true</filtering>  
            </resource>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
        </resources>  
    </build>

    <profiles>
        <!-- 1.开发环境 -->
        <profile>
            <id>dev</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <build>
                <filters>
                    <filter>profile-dev.properties</filter>
                </filters>
            </build>
        </profile>

        <!-- 2.测试环境 -->
        <profile>
            <id>test</id>
            <build>
                <filters>
                    <filter>profile-test.properties</filter>
                </filters>
            </build>
        </profile>

        <!-- 3.UAT环境 -->
        <profile>
            <id>uat</id>
            <build>
                <filters>
                    <filter>profile-uat.properties</filter>
                </filters>
            </build>
        </profile>

        <!-- 4.生产环境 -->
        <profile>
            <id>product</id>
            <build>
                <filters>
                    <filter>profile-product.properties</filter>
                </filters>
            </build>
        </profile>
    </profiles>
</project>
2. 用法:

比如profile-dev.properties文件中定义了

mvn.mysql.url.mydb=jdbc:mysql://localhost:3306/mydb
mvn.mysql.user.mydb=root
mvn.mysql.pass.mydb=1234

那么可以在其他公用配置文件中使用${}来引用profile-dev.properties中的属性,比如:
(1). db.properties中:

db.url=${mvn.mysql.url.mydb} 
db.user=${mvn.mysql.user.mydb}
db.pass=${mvn.mysql.pass.mydb}

(2) spring-ds.xml中:(用法1)

    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
        <property name="url" value="${mvn.mysql.url.mydb}"/>
        <property name="username" value="${mvn.mysql.user.mydb}"/>
        <property name="password" value="${mvn.mysql.pass.mydb}"/>
    </bean>

spring-ds.xml中,也可以使用这样:(用法2-引用再引用)

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
        <property name="url" value="${db.url}"/>
        <property name="username" value="${db.user}"/>
        <property name="password" value="${db.pass}"/>
</bean>
Spring Boot配置加密实战:Jasypt集成与安全最佳实践 在应用开发中,配置管理是连接代码与运行环境的关键环节,尤其涉及数据库连接、API密钥等敏感信息时,安全存储成为工程实践的必备考量。其核心原理在于通过透明加解密机制,在不改变原有配置读取流程的前提下,对敏感值进行加密处理,实现配置与密钥的分离。这项技术的核心价值在于显著提升应用的安全性基线,有效防止代码仓库泄露导致的敏感信息暴露。典型的应用场景包括Spring Boot项目的生产环境部署、微服务架构中的配置中心集成,以及需要符合安全审计要求的金融、政务系统。本文聚焦于Jasypt这一成熟的Java加密库,详细 阅读详情

相关推荐

Maven版本管理

Maven实现集中版本管理工具,整套开发视频源码以及开发文档。

使用maven的profile区分本地环境和线上环境

使用maven的profile区分本地环境和线上环境 多环境开发,使用maven-profile,就可以在打包的时候通过参数的调整,最终打的包也不同。 以区分本地数据库和线上数据库为例 比如测试环境,用的是本地测试数据库;生产环境用的是线上生产库 针对不同库的url,userName,password,就可以配两套,通过profile区分,然后打包的时候就可以区分了 具体使用: 1.在pom.xm...

zhangsir的博客 9520

倍福TwinCAT3 OPC UA配置全流程:从安装到无密码访问(附常见问题解决)

本文提供了倍福TwinCAT3 OPC UA配置的完整实战指南,重点讲解如何实现无密码游客访问。从软件安装、授权配置、服务器初始化到深度排错,详细解析了配置流程中的关键步骤与常见陷阱,帮助工程师高效打通PLC与上位系统的数据通讯通道。

vulkan6gpu的博客 473

Steam Machine 换装 Windows 11 全攻略:驱动安装与游戏实测

在 x86 迷你主机上更换操作系统,核心在于解决驱动兼容性与启动引导问题。其原理是通过 BIOS 调整启动模式与硬盘控制器,再安装通用驱动,从而释放硬件在 Windows 生态下的完整软件兼容性。这一过程的技术价值在于让客厅游戏终端兼顾办公与独占游戏,典型场景包括 Steam Machine 等设备。针对这类设备,需特别注意显卡与无线网卡驱动的获取顺序,并提前准备有线网络。本文围绕 Steam Machine 换装 Windows 11 的实操,详解驱动安装与游戏表现。

weixin_33968104的博客 453

一文读懂“数据分发服务DDS”(Data Distribution Service,RTPS,OMG)

DDS 数据分发服务(Data Distribution Service) 数据分发服务DDS(DataDistributionService)是对象管理组织(OMG)在HLA及CORBA等标准的基础上制定的新一代分布式实时通信中间件技术规范,DDS采用发布/订阅体系架构,强调以数据为中心,提供丰富的QoS服务质量策略,能保障数据进行实时、高效、灵活地分发,可满足各种分布式实时通信应用需求。DDS...

DDS技术交流推广大本营 4万+

用VASP计算GW+BSE

VASP在5.3以后的版本都能用解BSE方程的方法,在计算光吸收的过程中考虑激子效应。 下面就来写一个用BSE计算bulkSi的例子 首先,介电函数的计算是在GW计算的基础之上的。这里首先介绍G0W0的计算(我们这里直接在PBE的波函数基础上进行G0W0计算)。 1.PBE自恰计算,写WAVECAR System= Silicon groundstate occupied

ultra1989的专栏 2万+

maven多环境配置,区分本地、线上环境配置文件

公司在使用jenkins部署测试环境代码,直接发布war包的话配置文件得修改,很影响开发,于是 使用maven的profiles来配置多环境配置文件,方便部署 1、在pom文件中添加profiles节点 每一个profile子节点代表一个环境,id代表maven部署打包时指定的环境参数,profiles.active节点指定当前环境的配置文件所在目录,该目录是相对于src/main/resour...

dlz_Mr的博客 1007

【首份】2023年30米分辨率土地利用遥感监测数据

为了恢复和重建我国土地利用变化的现代过程,更好地预测、预报土地利用变化趋势,地球资源数据云以美国陆地卫星Landsat 遥感影像数据作为主信息源,结合Sentinel系列数据,通过人工目视解译和机器学习方法,建立了国家尺度1:10 万比例尺多时期土地利用/土地覆盖遥感监测数据库(CNLUCC)因早期Landsat数据时空覆盖缺失,1972-1977年合成第一期数据,1978-1985年合成第二期数据,1986年起每年度生成一期数据。投影:Albers正轴等面积双标准纬线圆锥投影南标准纬线:25°N。

地球资源数据云的官方博客 3682

Maven 打包 关于线下能运行不能打包的原因

一 .检查maven 打包报错类 有没有 main 方法,如果这个类被调用了,请删掉里面的main 方法。 二.如果并没有main 方法还报错,请按这个博客做。我没有遇见过,但是可以尝试。 http://blog.youkuaiyun.com/qq_26678239/article/details/52056815

Rain 1546

关于IBV_WR_RDMA_WRITE_WITH_IMM的理解

对于IBV_WC_RECV_RDMA_WITH_IMM的描述是这样的,也就是说并不需要sge,所以下发的sge,可以是NULL,个数可以是0。(1)需要下发post_recv,但是下发是post_recv当中的sge的地址可以是空,sge个数可以是0。伪代码,实际的rkey和addr已经通过socket交换。并且poll_cq时,有返回,在这篇文章当中对于poll_cq时,主要区别点有两个,这个是对于接收端而言。(2)可以带即时数据,

qq_38158479的博客 2422

php环境如何实现国密SM2相关功能

🏆本文收录于《优快云问答解惑-专业版》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!

**My Coding Family** 1616

Maven | filtering,filter和profile标签使用

博客引用处(以下内容在原有博客基础上进行补充或更改,谢谢这些大牛的博客指导): Maven的filtering和profile标签使用 使用Maven 将项目分版 前言 每个项目通常都会用不同的配置文件对应不同的版本,例如开发版和上线版本的配置通常会是不同的。此时就会产生一个问题,当项目需要从开发版切换到上线版时,总是会避免不了更改很多配置项,或者切换配置文件,但是不管哪一种都不方便配置。使用M...

Willian的博客屋 1903

CLRNet车道线检测模型在Orin Nano Super开发板上的全栈部署与优化实践

本文详细介绍了将CLRNet车道线检测模型部署到NVIDIA Orin Nano Super开发板的全过程。内容包括:1) Orin开发板硬件规格分析;2) JetPack SDK环境配置与Python虚拟环境搭建;3) CLRNet模型架构解析与PyTorch实现;4) 模型转换与TensorRT加速优化方法。通过系统性的环境配置、模型转换和性能优化,为边缘计算场景下的车道线检测应用提供了完整的解决方案,实现了在Orin平台上的高效部署。

huanghm88的专栏 226

filter动态参数 maven_Maven采用filter方式多环境配置实战

我们在实际开发项目的时候经常会遇到各种环境下打包,其中一般都会有至少三种开会环境,测试环境,生产环境。如果你只有一个配置文件,每次打包都要手动修改,这是最笨也是最不明智的办法。下面我来给大家介绍采用maven的filters来减少工作量,本例假设有两个环境,开会环境和生产环境。 分别有两个filter文件pom.xml文件的build下面加入以下内容:src/main/filters/filter...

weixin_39911475的博客 238

AI大模型助力现金流精准预测案例详解

因为它的“注意力机制”能像“人一样思考”——比如,当预测“下周现金流”时,模型会重点关注“最近7天的销售数据”“未来7天的天气”“竞品是否有促销”这些关键因素,而忽略“去年同期的无关数据”。AI大模型不是“取代”财务人员,而是“赋能”他们——把财务人员从“重复的Excel操作”中解放出来,专注于“战略决策”(比如如何优化资金结构、如何提升资金利用率)。比如,“促销力度”这个特征,不是简单的“折扣率”,而是“折扣率×促销天数×覆盖SKU数量”,这样能更准确反映促销对现金流的影响。这些问题的核心,其实是。

AIGC应用创新大全的博客 1258

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

IDEA配合Maven的过滤器filter配置作用之一快速切换项目环境配置文件

IDEA配合Maven的过滤器filter配置作用之一快速切换项目环境配置文件 前言 在平时的工作中,我们都会遇到这样的场景:开发、测试和上线发布三个环节的环境配置都不尽相同,那么如何快速的在三种环境中切换呢?这就要讲到我们今天的内容,maven的过滤器filter配置。 工具 maven的pom文件 代码 &lt;!--不同环境下的配置文件,一个profile代表一个环境-...

JN_H2580的博客 2093

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

filter动态参数 maven_多环境下Maven项目的管理

前言:对于一个项目,开发和生产环境之间会使用不同的配置文件,最简单的例子就是数据库连接池的配置了。当然,可以在打包上线前对配置文件进行替换,不过这也太low了吧。简单的pom.xml中的配置内容比如我们在maven项目中引入了内嵌式的tomcat插件(当然打包方式是要war包),如下代码<!--在build标签中--> <plugins> &l...

weixin_39900468的博客 119

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

maven中mysql的配置文件路径_Maven项目多环境之间的配置文件的切换

前言:对于一个项目,开发和生产环境之间会使用不同的配置文件,最简单的例子就是数据库连接池的配置了。当然,可以在打包上线前对配置文件进行替换,不过这也太low了吧。简单的pom.xml中的配置内容比如我们在maven项目中引入了内嵌式的tomcat插件(当然打包方式是要war包),如下代码org.apache.tomcat.maventomcat7-maven-plugin2.28821/指定了端口...

weixin_34900758的博客 969

MAVEN 动态打包

Maven配置分离 开发,测试,生产 环境配置 对应场景 在很多情况下,sql、redis、MongoDB等数据库分布在多台服务器上,根据使用情况分为 开发,测试,生产等,而我们需要将写好的代码进行打包,放在不同的服务器上,根据不同的情况,需要连接不同库,频繁的修改数据进行打包,比较麻烦,所以这里通过配置文件根据不同的命令进行打包,就更加方便了 实现方式: ...

weixin_41905099的博客 1032

Maven多环境配置实战 Filter

目前在开发一个wap项目,主要有开发、测试和最终部署上线几个阶段,每个阶段对配置(数据库、日志)都有不同的设置。以前都是以开发环境为主,在测试和部署上线时由部署工程师负责修改配置并上线。但是公司并非都有一个项目,我们也不是只负责一个项目,这样的工作方式导致每每上线时大家都心惊胆颤,实在忍受不了折磨,决定研究下maven下如何解决这个问题。找到方案后,不敢独享,将结果向大家介绍下。思路: 几个环境中

猛犸 3342

Maven多环境配置实战 filter

目前在开发一个wap项目,主要有开发、测试和最终部署上线几个阶段,每个阶段对配置(数据库、日志)都有不同的设置。以前都是以开发环境为主,在测试和部署上线时由部署工程师负责修改配置并上线。但是公司并非都有一个项目,我们也不是只负责一个项目,这样的工作方式导致每每上线时大家都心惊胆颤,实在忍受不了折磨,决定研究下maven下如何解决这个问题。找到方案后,不敢独享,将结果向大家介绍下。思路: ...

设计模式 289

利用mvn进行多环境配置

代码里的resource信息有很多,代码里写死某一个环境的配置的话,有以下若干问题。 1. dev,不同的beta上,使用的resource信息不同。 2. 代码没有发布到对应的环境上,需要去机器上需要手动修改。不锁住配置文件,则每次发布都需要手动修改;若锁住配置文件,则代码更新了配置文件,则机器上还是老的配置文件。把测试的环境写到代码里,容易引起配置不稳定,上线前忘了改过来可能造成问题。 ...

weixin_34123613的博客 153

初创团队快速上线:单体架构、容器化部署与运维实践

在软件工程领域,技术架构的选型往往决定产品交付的效率与稳定性。对于初创团队或个人开发者而言,理解单体应用与微服务的边界,掌握容器化部署与持续交付的基本原理,是快速验证业务模型的关键。本文从通用架构理念出发,阐述如何以一台应用服务器、一个关系数据库和一个缓存服务为基础,构建可维护、可监控、可演进的最小系统。结合Spring Boot、PostgreSQL、Redis、Docker Compose等主流技术,覆盖认证鉴权、数据迁移、日志追踪、健康检查与故障排查等实践场景。内容强调模块化单体优于过早微服务拆分,并

weixin_34357436的博客 453

Spring Boot配置安全:从环境变量到配置中心的敏感信息保护实战

在现代应用开发中,配置管理是连接代码与运行环境的关键环节,其核心在于将数据库密码、API密钥等敏感信息与业务逻辑分离。Spring Boot通过其强大的外部化配置机制,支持从环境变量、配置文件到专业配置中心的多层级方案,实现了配置与代码的解耦。这一设计不仅提升了应用的可移植性和环境适配能力,更重要的是为敏感信息的安全管理提供了基础架构。从安全工程角度看,配置信息泄露是常见的高危风险点,直接威胁数据隐私与系统安全。因此,在微服务与云原生场景下,采用外部化配置中心(如Spring Cloud Config、Ha

weixin_30338497的博客 375

Flutter跨平台应用集成TikTok登录:从环境配置到安全上线的完整指南

OAuth 2.0是现代应用实现第三方授权登录的行业标准协议,其核心原理是通过授权码模式,在用户授权后,由客户端应用使用授权码向认证服务器安全交换访问令牌。这一机制在保障用户账户安全的同时,极大地简化了注册流程,提升了用户体验。在技术实现层面,尤其是在跨平台开发框架Flutter中,集成如TikTok这类主流社交平台的登录功能,已成为出海应用获取海外用户、特别是Z世代用户的关键技术实践。该过程不仅涉及Flutter端的Dart逻辑与状态管理,更深度依赖原生平台(Android/iOS)的SDK集成、Grad

weixin_30352191的博客 307
上一篇: CentOS修改镜像源头
下一篇: Future Callable 线程池 例1
绝尘的绝
博客等级 码龄15年 15粉丝 207原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值