maven项目动态替换配置中的值

  为何一些maven项目可以替换配置文件中的变量?

  比如说一个log4j.properties文件中:

logFolder=${log4j.folder}
BufferedIO=${log4j.bufferedIO}
ImmediateFlush=${log4j.immediateFlush}

# 根日志(没有指定自定义logger的会使用此配置)    日志等级阀门在此
#debug
log4j.rootLogger=info,commonLog,errorLog

  变量${log4j.folder}??${log4j.bufferedIO}??${log4j.immediateFlush}??可是我打包后就变成具体的变量了?

    <profiles>
        <profile>
            <id>prod</id>
            <properties>
                <env>prod</env>
                <log4j.folder>/home/logs/</log4j.folder>
                <log4j.bufferedIO>true</log4j.bufferedIO>
                <log4j.immediateFlush>true</log4j.immediateFlush>                
            </properties>
        </profile>
    </profiles>

    <properties>                
        <!-- 默认研发环境 -->
        <env>dev</env>
        <log4j.folder>E:/logs/</log4j.folder>
        <log4j.bufferedIO>false</log4j.bufferedIO>
        <log4j.immediateFlush>false</log4j.immediateFlush>
    </properties>

  当然了, 需要配置的。参考下面的:

    <!--  
        resource的filtering属性用来表示资源文件中的占位符是否需要被替换,true为需要替换。
     -->
    <build>
        <resources>
            <resource>
                <filtering>true</filtering>
                <directory>src/main/resources</directory>
                
                <!-- 只替换properties文件 
                <includes>  
                    <include>**/*.properties</include>
                </includes>
                 -->
            </resource>
        </resources>
        
    </build>

  不求深入了解。。。

  参考:http://blog.csdn.net/xiao_jun_0820/article/details/49864285

原文地址:https://www.cnblogs.com/ELMND/p/5850264.html