開發(fā)過程, 我們習(xí)慣把數(shù)據(jù)源配置, 項(xiàng)目常量, 日志配置等基礎(chǔ)數(shù)據(jù)配置寫到一個(gè)個(gè)單獨(dú)的的文件中. 如jdbc.properties等各種.格式的文件.
如何不頻繁修改配置文件, 隨時(shí)打包不同基礎(chǔ)數(shù)據(jù)配置信息的項(xiàng)目.
1.新建maven項(xiàng)目, 在pom.xml中添加 profile節(jié)點(diǎn)信息如下:
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
|
<profiles> <profile> <!-- 開發(fā)環(huán)境 --> <id>dev</id> <properties> <environment>development</environment><!-- 節(jié)點(diǎn)名字environment是自己隨意取的 --> </properties> <activation> <activebydefault> true </activebydefault><!-- 默認(rèn)激活該profile節(jié)點(diǎn)--> </activation> </profile> <profile> <!-- 測試環(huán)境 --> <id>test</id> <properties> <environment>test</environment> </properties> </profile> <profile> <!-- 預(yù)演環(huán)境 --> <id>prev</id> <properties> <environment>preview</environment> </properties> </profile> <profile> <!-- 生產(chǎn)環(huán)境 --> <id>prod</id> <properties> <environment>production</environment> </properties> </profile> </profiles> |
2. 在項(xiàng)目中添加各環(huán)境需要的數(shù)據(jù)源配置文件,分不同目錄存放, 分別是開發(fā),測試, 預(yù)演,生產(chǎn) 環(huán)境. 如下圖左邊部分所示.
3. pom.xml中配置resource節(jié)點(diǎn)信息.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
<build> <resources> <resource> <directory>src/main/resources</directory> <excludes> <exclude>environment/development/*</exclude> <exclude>environment/test/*</exclude> <exclude>environment/preview/*</exclude> <exclude>environment/production/**</exclude> </excludes> </resource> <resource> <directory>src/main/resources/environment/${environment}</directory> <targetpath>environment/${environment}</targetpath> </resource> </resources> </build> |
resource節(jié)點(diǎn)信息解釋:
1
2
3
4
5
6
7
|
<directory>src/main/resources</directory> <!--打包時(shí)包含src/main/resources目錄下所有 "子" 文件 和 "孫" 文件.如config 和environment --> <exclude>environment/development/**</exclude> <!--打包時(shí)排除src/main/resources/environment/development下所有 "子" 文件 和 "孫" 文件.--> <exclude>environment/test/**</exclude> <!--打包時(shí)排除src/main/resources/environment/test下所有 "子" 文件 和 "孫" 文件.--> <exclude>environment/preview/**</exclude> <!--打包時(shí)排除src/main/resources/environment/preview下所有 "子" 文件 和 "孫" 文件.--> <exclude>environment/production/**</exclude><!--打包時(shí)排除src/main/resources/environment/production下所有 "子" 文件 和 "孫" 文件.--> <!-- 注意點(diǎn): 如果寫一個(gè)心號*, 如<exclude>environment/development/*</exclude> 則表示:打包時(shí)排除src/main/resources/environment/development下所有 "子" 文件, 不排除 "孫" 文件, 如上一個(gè)截圖所示.--> <!-- 以上配置優(yōu)先度從上到下 遞增, 這就達(dá)到目的: config目錄下的配置各環(huán)境都需要, 而其它環(huán)境相關(guān)的配置只會(huì)有一個(gè)目錄被打包---> |
1
2
|
<directory>src/main/resources/environment/${environment}</directory> <!-- 打包時(shí)包含src/main/resources/environment/${environment}下所有 "子" 文件,environment變量值來自profile中賦值 --> <targetpath>environment/${environment}</targetpath><!--指定src/main/resources/environment/${environment}所有 "子文件" 打包 到包的哪個(gè)目錄 --> |
4. 項(xiàng)目打包. 打包命令mvn package -pdev來指定激活id為 dev 的profile節(jié)點(diǎn), 這樣, 開發(fā)環(huán)境配置文件就會(huì)被打包.
開發(fā): mvn package -pdev (因?yàn)榕渲昧四J(rèn)激活dev部分, 所以也可以使用mvn package, 這與 mvn package -pdev 效果相同)
測試: mvn package -ptest
預(yù)演:mvn package -pprev
生產(chǎn):mvn package -pprod
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。
原文鏈接:https://blog.csdn.net/hjiacheng/article/details/57413933