在pom文件中配置变量,使用profile标签,activeByDefault为true表示没选择时默认加载的配置
<profiles>
<profile>
<id>sit</id>
<properties>
<env>sit</env>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>dev</id>
<properties>
<env>dev</env>
</properties>
</profile>
</profiles>
先排除掉所有配置,启动时不加载这些配置文件
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>env/dev/**</exclude>
<exclude>env/sit/**</exclude>
</excludes>
</resource>
</resources>
</build>
再加上动态配置,${env}值为上面profiles配置的
<resource>
<directory>src/main/resources/env/${env}</directory>
</resource>
最终配置
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>env/dev/**</exclude>
<exclude>env/sit/**</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources/env/${env}</directory>
</resource>
</resources>
</build>
刷新下maven会发现,profiles出现了,启动的时候勾选对应的配置就行了