maven 打包時動態替換properties資原始檔中的配置值
阿新 • • 發佈:2019-01-23
pom build節點下面新增resource配置:
resource的filtering屬性用來表示資原始檔中的佔位符是否需要被替換,true為需要替換。<resources> <resource> <directory>src/main/resources/</directory> <filtering>true</filtering> <includes> <include>**/*.properties</include> </includes> </resource> <resource> <directory>src/main/resources/</directory> <filtering>false</filtering> <includes> <include>**/*.xml</include> </includes> </resource> </resources>
上面的定義是所有的.properties檔案中的EL表示式佔位符都會在打包時動態替換,所有的.xml檔案則不會替換佔位符。
接下來我們配置兩個profile,一個是測試環境,一個是正式環境配置:
<profiles> <profile> <id>dev</id> <properties> <jest.urls>http://n2:9200,http://n4:9200</jest.urls> </properties> <activation> <activeByDefault>true</activeByDefault> </activation> </profile> <profile> <id>production</id> <properties> <jest.urls>http://192.168.3.241:9200,http://192.168.3.242:9200</jest.urls> </properties> </profile> </profiles>
我們再在src/main/resources目錄下面建立一個config.properties檔案,內容如下:
jest.urls=${jest.urls}
然後我們執行maven打包命令:clean package -DskipTests -Pdev
檢視對應的jar包裡面的config.properties檔案,可以發現佔位符已經被替換成了profile dev中配置的jest.urls的值。