【Maven】实现环境隔离

通过Maven的profiles特性,本文介绍了一种实现不同环境(开发、测试、生产)配置自动切换的方法,简化了项目的部署流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、前言

通常,一个项目在本地开发完成后,需要提交到测试环境进行测试,测试完成后最终放到生成环境运行。但是,这 3 个运行环境的配置必然有所不同。当每次提交到不同的环境都需要修改项目的配置,这些操作显得非常繁琐且容易出错。

本文将介绍使用 Maven 实现环境隔离的小技巧来避免人工修改出错,解决上述问题。

二、实现方式

演示环境:IDEA

2.1 修改 pom.xml

1) 在 pom.xml 文件的 build 节点下设置 resources 节点:


    
1
2
3
4
5
6
7
8

    
<build>
<resources>
<resource>
<directory>src/main/resources </directory>
<filtering>true </filtering>
</resource>
</resources>
</build>

2) 在 pom.xml 文件中设置 3 个 profile 节点,分别对应 dev(开发环境)、test(测试环境) 和 pro(生产环境) 。这 3 个 profile 节点定义不同环境的需要的配置信息。


    
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

    
<profiles>
<profile>
<id>dev </id>
<activation>
<!-- 默认为开发环境 -->
<activeByDefault>true </activeByDefault>
</activation>
<properties>
<env.jdbc.url>jdbc:mysql://127.0.0.1:3380/open_system_dev </env.jdbc.url>
<env.jdbc.username>root </env.jdbc.username>
<env.jdbc.password>tiger </env.jdbc.password>
</properties>
</profile>
<profile>
<id>test </id>
<properties>
<env.jdbc.url>jdbc:mysql://127.0.0.1:3380/open_system_test </env.jdbc.url>
<env.jdbc.username>root </env.jdbc.username>
<env.jdbc.password>tiger </env.jdbc.password>
</properties>
</profile>
<profile>
<id>pro </id>
<properties>
<env.jdbc.url>jdbc:mysql://127.0.0.1:3380/open_system_pro </env.jdbc.url>
<env.jdbc.username>root </env.jdbc.username>
<env.jdbc.password>tiger </env.jdbc.password>
</properties>
</profile>
</profiles>

此时,点击 IDEA 右侧的 Maven Project 可以看到 Profiles 节点,选择对应的 profile 即可切换运行环境,如下图:

image

2.2 修改 properties 文件

db.properties


    
1
2
3
4

    
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=${env.jdbc.url}?characterEncoding=utf-8&allowMultiQueries=true&serverTimezone=UTC
jdbc.username=${env.jdbc.username}
jdbc.password=${env.jdbc.password}

使用在 pom.xml 文件中定义的变量替换配置文件中的值。

三、测试

我们点击 IDEA 的 Maven Project,选择 dev 环境。使用 Maven 自带的打包工具打包项目,查看其打包后的配置文件信息。如下图:

image

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值