为何一些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