关于maven参数过滤

一、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来实现。

你可能感兴趣的:(maven)