作者 | 時間 |
---|---|
雨中星辰 | 20190523 |
背景
項目在開發(fā)中氓皱,有多種環(huán)境,之前每次在不同的環(huán)境部署都要修改一次配置文件续室,覺得十分麻煩栋烤,而且修改配置文件,不小心很容易出錯挺狰,就想到了使用maven和springboot的多環(huán)境配置明郭。
但是經(jīng)過研究發(fā)現(xiàn),springboot的多環(huán)境只能配置springboot的配置文件丰泊,但是在我的項目中除了springboot的配置文件還有其他的文件薯定,故使用maven的多環(huán)境配置完成本次需求。
方法
1. 在resource根據(jù)不同的環(huán)境建立不同的目錄瞳购,將該環(huán)境的配置文件放入目錄中话侄。
image.png
2. 配置profile
<profiles>
<!--本地開發(fā)環(huán)境-->
<profile>
<id>ys</id>
<properties>
<profiles.active>ys</profiles.active>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<!--冀北環(huán)境-->
<profile>
<id>jb</id>
<properties>
<profiles.active>jb</profiles.active>
</properties>
</profile>
<!--四川環(huán)境-->
<profile>
<id>sc</id>
<properties>
<profiles.active>sc</profiles.active>
</properties>
</profile>
<!--天津環(huán)境-->
<profile>
<id>tj</id>
<properties>
<profiles.active>tj</profiles.active>
</properties>
</profile>
</profiles>
3. 資源配置
<build>
<!--為了區(qū)分打包的環(huán)境,在報名后加入了環(huán)境名-->
<!--打包后的名稱為:zeus-admin-2.1-fj.jar-->
<finalName>${project.artifactId}-${project.version}-${profiles.active}</finalName>
<resources>
<resource>
<directory>src/main/java</directory>
</resource>
<resource>
<directory>src/main/resources</directory>
<!--指定要包含的文件-->
<includes>
<include>banner.txt</include>
<!--包含static的目錄下的所有文件-->
<!--一個*指:所有子文件学赛,兩個*指:"子"文件與"孫"文件-->
<include>static/**</include>
</includes>
<!-- 資源根目錄排除各環(huán)境的配置年堆,使用單獨的資源目錄來指定 -->
<excludes>
<exclude>hn/**</exclude>
<exclude>jb/**</exclude>
<exclude>local/**</exclude>
<exclude>sc/**</exclude>
<exclude>tj/**</exclude>
<exclude>ys/**</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources/${profiles.active}</directory>
<!--是否替換資源中的屬性-->
<filtering>true</filtering>
</resource>
</resources>
</build>
#4.打包
mvn clean package -DskipTests -P ${profiles.active}
例:mvn clean package -DskipTests -P ys
注意:一定要加clean,否則可能會將其他環(huán)境的配置文件打包進去盏浇,雖然不影響程序的使用变丧,但是不太好。