一、maven通过设置过滤器,可以使maven在编译打包时实现参数过滤的功能(详细配置说明略)
<filters> <filter>../antx.properties</filter> </filters> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> <include>**/*.txt</include> </includes> <filtering>true</filtering> </resource> <resource> <directory>src/main/resources</directory> <includes> <include>**/*</include> </includes> <filtering>true</filtering> </resource> </resources>
这种原生的方式会把指定目录的文件在编译打包时,过滤放到class目录下,但是原文件还是不变
二、通过maven-war-plugins打包过滤
<filters> <filter>../antx.properties</filter> </filters> <finalName>matrix-tiao</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.3</version> <configuration> <warName>matrix-tiao</warName> <encoding>GB2312</encoding> <webResources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> <targetPath>WEB-INF/classes</targetPath> </resource> <resource> <directory>src/main/webapp/WEB-INF</directory> <filtering>true</filtering> <targetPath>WEB-INF</targetPath> </resource> <resource> <directory>../poll/src/main/resources</directory> <filtering>true</filtering> <targetPath>WEB-INF/bean</targetPath> </resource> <resource> <directory>../choice/src/main/resources</directory> <filtering>true</filtering> <targetPath>WEB-INF/bean</targetPath> </resource> </webResources> </configuration> </plugin> </plugins>
使用此插件过滤,可以在原文件的目录下替换原文件,而不光是像原生方法那样直接丢到class目录下而不改变原文件。但是此方法还是编译打包期的过滤替换,所以在使用eclipse之类的IDE工具运行项目时,无法使用此方法来做到过滤替换参数。
三、要做到在IED中运行就能过滤替换参数,可以使用spring的PropertyPlaceholderConfigurer来实现。
原文:http://www.cnblogs.com/xujanus/p/4652717.html