首页 > 代码库 > maven项目动态替换配置中的值

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

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

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

logFolder=${log4j.folder}BufferedIO=${log4j.bufferedIO}ImmediateFlush=${log4j.immediateFlush}# 根日志(没有指定自定义logger的会使用此配置)    日志等级阀门在此#debuglog4j.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

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