通过maven进行多环境的配置
<properties>
<profiles.dir>src/main/profiles</profiles.dir>
</properties>
<profiles>
<profile>
<id>dev</id>
<properties>
<profile.dir>${profiles.dir}/dev</profile.dir>
</properties>
</profile>
<profile>
<id>test</id>
<properties>
<profile.dir>${profiles.dir}/test</profile.dir>
</properties>
</profile>
</profiles>
<build>
<filters>
<filter>${profile.dir}/config.properties</filter>
</filters>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
<include>**/*.ini</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>${profile.dir}</directory>
<filtering>true</filtering>
</resource>
</resources>
<testResources>
<testResource>
<directory>src/main/resources/props</directory>
<filtering>true</filtering>
<targetPath>props</targetPath>
</testResource>
</testResources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<source>${jdk.version}</source>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
</plugin>
<!-- <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
</plugin>-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>${jdk.version}</source>
<target>${jdk.version}</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
这里filter的作用是说,
使用
<filter>${profile.dir}/config.properties</filter>
这个配置文件,来替换resource中的include文件
<includes> <include>**/*.properties</include> <include>**/*.xml</include> <include>**/*.ini</include> </includes>
举个例子config.properties中有个配置config.id=111
在 resource目录下,有个prop/test.properties有这样的配置
ios-bundle-id=${config.id}
这样在maven打包的时候,就会将${config.id}占位符表达式替换成为真正的值,也就是111。
注意的是<include>**/*.xml</include> 所以很多spring-xxx.xml配置文件中的占位符表达式也会被替换。不需要再增加
<!--这里不用加载classpath:config.properties 因为maven的filter配置已经将占位符替换 --> <!--<value>classpath:config.properties</value>-->