maven 打包時動態替換properties資源文件中的配置值

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的值。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容