src/main/resources/IProject-test.properties
src/main/resources/IProject-real.properties
system.envid=real
method.version=1.0.0. release
………
<bean id="myService" class="com.nileader.MyService" init-method="init">
<property name="version">
<value>${ system.envid }</value>
</property>
</bean>
<filters>
<filter> src/main/resources/IProject-test.properties </filter>
</filters>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webResources>
<resource>
<directory>src/main/packageFilter</directory>
<filtering>true</filtering>
<targetPath>WEB-INF</targetPath>
</resource>
</webResources>
</configuration>
</plugin>
这里就可以解决刚才提到的那个问题了,配置文件看上去已经移动了,但是并不需要告诉你的项目,其实在项目加载配置文件的时候,我们已经将一个完整的,不包含任何占位符的配置放在了项目本应该放的位置 ,这里由下面这段配置实现的:
<resource>
<directory>src/main/packageFilter</directory>
<filtering>true</filtering>
<targetPath>WEB-INF</targetPath>
</resource>
<profiles>
profile for bulid
<profile>
<id>test</id>
<build>
<filters>
<filter> src/main/resources/IProject-test.properties</filter>
</filters>
</build>
</profile>
<profile>
<id>real</id>
<build>
<filters>
<filter> src/main/resources/IProject-real.properties</filter>
</filters>
</build>
</profile>
</profiles>
<filters>
<filter> src/main/resources/IProject-test.properties </filter>
</filters>
<plugin>
……..
<!-- 注意,对这个文件的任何修改必须同步到文件:src/main/packageFilter/****.xml,否则白改了. -->