使用maven-war-plugin 對Maven專案進行動態打包
阿新 • • 發佈:2019-01-08
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,否則白改了. -->