pom build節點下面添加resource配置:
- <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>
resource的filtering屬性用來表示資源文件中的占位符是否需要被替換,true為需要替換。
上面的定義是所有的.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的值。