先声明一下,我觉得下面的技术在实践过程中并没有太大的意义,只是碰巧看到了,所以就整理一下。
如下,我们可以如下配置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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
<profiles>
<!--部署环境-->
<profile>
<id>local</id>
<!--local环境-->
<build>
<resources>
<resource>
<directory>src/main/profiles/local</directory>
<!--引入properties文件地址-->
</resource>
</resources>
</build>
<properties>
<profile.env>local</profile.env>
<!--变量,标识环境-->
<log.root.level>INFO</log.root.level>
<log.logger.level>DEBUG</log.logger.level>
<log.console.level>INFO</log.console.level>
</properties>
</profile>
<profile>
<id>development</id>
<!--local环境-->
<build>
<resources>
<resource>
<directory>src/main/profiles/development</directory>
<!--引入properties文件地址-->
</resource>
</resources>
</build>
<properties>
<profile.env>development</profile.env>
<!--变量,标识环境-->
<log.root.level>INFO</log.root.level>
<log.logger.level>DEBUG</log.logger.level>
<log.console.level>INFO</log.console.level>
</properties>
</profile>
<profile>
<id>preview</id>
<!--local环境-->
<build>
<resources>
<resource>
<directory>src/main/profiles/preview</directory>
<!--引入properties文件地址-->
</resource>
</resources>
</build>
<properties>
<profile.env>preview</profile.env>
<!--变量,标识环境-->
<log.root.level>INFO</log.root.level>
<log.logger.level>DEBUG</log.logger.level>
<log.console.level>INFO</log.console.level>
</properties>
</profile>
<profile>
<id>product</id>
<!--生产部署环境-->
<build>
<resources>
<resource>
<directory>src/main/profiles/production</directory>
<!--引入properties文件地址-->
</resource>
</resources>
</build>
<properties>
<profile.env>product</profile.env>
<!--product-->
<log.root.level>INFO</log.root.level>
<log.logger.level>DEBUG</log.logger.level>
<log.console.level>INFO</log.console.level>
<!--相关占位符变量配置,例如:xml中配置为${node.path},则pom进行如下配置-->
<node.path>main.js</node.path>
</properties>
</profile>
</profiles>
|
这段配置出乎意料的是,我们可以在配置profile时,同时配置build和properties,从而来覆盖默认的配置。我为什么会觉得这项技术没有多大的意义呢,因为DevOPS中希望,一个软件制品可以通过不同的配置文件启动,从而达到不同的效果。使用上面的方式进行构建,我们的每个软件制品其实都是不一样的,所以就不可能实现通过不同的配置文件来启动同一个软件制品。
参考资料
- java引用pom中定义的变量解决方案