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