通过 maven 的 profile 实现按环境来加载配置文件

项目结构

project_file_root
|—main
|——–java
|——–resources
|——–profile
|—————dev
|—————test
|—————beta
|—————release

pom.xml
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
31
32
33
34
35
36
37
38
39
40
41
42
<profiles>
true<profile>
truetrue<id>dev</id>
truetrue<activation>
truetruetrue<activeByDefault>true</activeByDefault>
truetrue</activation>
truetrue<properties>
truetruetrue<config.dir>dev</config.dir>
truetrue</properties>
true</profile>
true<profile>
truetrue<id>test</id>
truetrue<properties>
truetruetrue<config.dir>test</config.dir>
truetrue</properties>
true</profile>
true<profile>
truetrue<id>beta</id>
truetrue<properties>
truetruetrue<config.dir>beta</config.dir>
truetrue</properties>
true</profile>
true<profile>
truetrue<id>release</id>
truetrue<properties>
truetruetrue<config.dir>release</config.dir>
truetrue</properties>
true</profile>
</profiles>

<build>
true<resources>
truetrue<resource>
truetruetrue<directory>src/main/profile/${config.dir}</directory>
truetruetrue<targetPath>./</targetPath>
truetrue</resource>
truetrue<resource>
truetruetrue<directory>src/main/resources</directory>
truetruetrue<targetPath>./</targetPath>
truetrue</resource>
true</resources>
</build>
思路

大致思路就是建一个 profile 的目录,这个目录名可以随意只要跟后面保持一致就行,然后在这个目录下面建几个按环境区分的目录,通常是 dev(开发),test(测试),beta(预发),release(正式)。然后再通过 maven 的 profile 特性,生成按环境的${config.dir}的值。最后通过 maven 的 resources 标签来完成配置文件的拷贝,大功告成。

打包命令
1
2
mvn clean install -P(profile_id)
eg. mvn clean install -Pdev --打包开发环境的配置文件

本文地址 https://blog.coder4j.cn/posts/e0dc8c3f/