版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ouyang111222/article/details/78788106
在这篇文章中 maven配置多个.properties文件,我们利用maven实现了不同环境使用不同的properties文件,但是有时候properties文件并不太适合一些对象性配置,这时候不得不使用yaml文件,那么问题了,不同的环境怎么使用不同的yaml文件呢?
最简单的思路就是使用maven-resource-plugin,根据环境变量将文件拷贝到resource下面即可:
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>dev</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>src/main/resources</outputDirectory>
<resources>
<resource>
<directory>src/main/env/dev/yaml</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
完整的配置文件如下:
<profiles>
<!-- 开发环境,默认为开发环境 -->
<profile>
<id>dev</id>
<build>
<filters>
<filter>
src/main/env/dev/biz.properties
</filter>
</filters>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>dev</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>src/main/resources</outputDirectory>
<resources>
<resource>
<directory>src/main/env/dev/yaml</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<activation>
<activeByDefault>true</activeByDefault>
<property>
<name>dev</name>
</property>
</activation>
</profile>
<profile>
<id>testing</id>
<build>
<filters>
<filter>
src/main/env/testing/biz.properties
</filter>
</filters>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>testing</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>src/main/resources</outputDirectory>
<resources>
<resource>
<directory>src/main/env/testing/yaml</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>