平时开发中最常见的是dev、test、prod三种环境,经常会在一个项目中,根据不同的环境去不同的配置。下面就在springboot+maven的开发环境下配置这三种环境。
1.在pom.xml文件中配置出这三个profile。
1 <profiles> 2 <profile> 3 <id>dev</id> 4 <properties> 5 <profiles.active>dev</profiles.active> 6 </properties> 7 <activation> 8 <activeByDefault>true</activeByDefault> 9 </activation> 10 </profile> 11 12 <profile> 13 <id>test</id> 14 <properties> 15 <profiles.active>test</profiles.active> 16 </properties> 17 </profile> 18 19 <profile> 20 <id>prod</id> 21 <properties> 22 <profiles.active>prod</profiles.active> 23 </properties> 24 </profile> 25 </profiles>
其中<id>的是会在右侧maven面板中显示的值,<profiles.active>标签是自定义的,可以更换成其他标签。
2.在项目的resources目录下创建出对应的目录和文件,文件夹的目录和<profiles.active>的值保持一致。
3.在pom.xml文件中配置打包是需要打进jar包的配置文件
1 <build> 2 <finalName>test-api</finalName> 3 <plugins> 4 <plugin> 5 <groupId>org.springframework.boot</groupId> 6 <artifactId>spring-boot-maven-plugin</artifactId> 7 <executions> 8 <execution> 9 <goals> 10 <goal>repackage</goal> 11 </goals> 12 </execution> 13 </executions> 14 <configuration> 15 <executable>true</executable> 16 </configuration> 17 </plugin> 18 </plugins> 19 <resources> 20 <resource> 21 <directory>src/main/resources/</directory> 22 <!--打包时先排除掉三个文件夹--> 23 <excludes> 24 <exclude>dev/*</exclude> 25 <exclude>prod/*</exclude> 26 <exclude>test/*</exclude> 27 </excludes> 28 </resource> 29 <resource> 30 <!--这里是关键! 根据不同的环境,把对应文件夹里的配置文件打包--> 31 <directory>src/main/resources/${profiles.active}</directory> 32 </resource> 33 </resources> 34 </build>
注:<directory> 标签中的 "profiles.active" 和1中的名称保持一致。
只要保证两边保持一致即可。
4.刷新maven,即可看到右侧Maven面板中profiles文件夹下的这三个环境(名称是1对应的id)了。