使用maven-war-plugin動態載入處理環境變數,過濾打包檔案
在公司使用ANTX作為構建工具,一直以來感覺ANTX的auto-config功能很實用,它很好的將不同環境的打包方式透過properties檔案分離了開來,且ANTX的這部分功能的實現應該是採用Velocity實現,故可以實現非簡單的變數填充的功能,在配置中還可以寫簡單VM的語法。後來構建工具轉型到MAVEN之後一直在尋找一種與ANTX 的autoconfig功能類似的外掛,以解決不同環境打包的動態引數設定問題。經過google後發現了此外掛,此處記錄一下該外掛----maven-war-plugin 。
基本配置 :(包括排除 不想打進war包的jar 的配置)
<!-- 過濾檔案,通常是一個屬性檔案(名值對的形式) --> src/main/webapp/META-INF/auto-config.properties <!--${user.home}/antx.properties -->communitytag org.apache.maven.plugins maven-war-plugin 2.1-alpha-1 <!-- 打包之前過濾掉不想要被打進 .war包的jar,注意:這個地方,本來路徑應該是 WEB-INF/lib/anaalyzer-2.0.4.jar,但是經過多次試驗,不能這樣,至於咋回事兒,搞不清楚。。經多方查證均無結果 暫且這樣吧,雖然顯得很醜陋,但是總能解決問題吧 --> */lib/analyzer-2.0.4.jar <!-- 元配置檔案的目錄,相對於pom.xml檔案的路徑 --> src/main/webapp/WEB-INF <!-- 是否過濾檔案,也就是是否啟動auto-config的功能 -->true <!-- 目標路徑 -->WEB-INF
如上配置及到web專案的pom檔案中,且配置中路徑相關的資訊均以pom作為路徑。
應用舉例:
為了能更好的理解這個配置是怎麼回事兒,我們來看看達到了什麼樣的效果,如下: 在應用的配置檔案路徑為 src/main/webapp/WEB-INF/biz/a.xml 有如下配置
beans PUBLIC "-//SPRING//DTD BEAN//EN" "">
上面的配置中有如下需要動態植入的變數
${communitytag.biz.tair.namespace}
故我們將此變數對應的值配置到屬性檔案src/main/webapp/META-INF/auto-config.properties(pom.xml檔案中filter的配置),如下
communitytag.biz.tair.namespace=242
至此,執行命令mvn install,我們看看目標檔案targe下的a.xml內容已經動態產生了,如下
beans PUBLIC "-//SPRING//DTD BEAN//EN" "">
結果已經很形象了。。。雖然不能支援像antx那樣對velocity語法的支援,但是此外掛對於大多數環境打包來說,已經足夠了。至於這個plugin的深度的功能研究,待以後有需求的時候繼續研究,記錄在此以便查閱。
原文連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2041/viewspace-2811148/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【Linux入門教程】2 檔案許可權和訪問模式、環境變數、管道和過濾器Linux模式變數過濾器
- 批處理-刪除環境變數變數
- 下拉表關聯非同步載入- 引數動態過濾非同步
- 批處理 壓縮zip 並過濾部分檔案
- 【ZIP】打包過濾指定目錄和檔案
- 使用 setenv 配置檔案管理 Tomcat 的自定義環境變數Tomcat變數
- 3、Webserver如何處理動態檔案WebServer
- VisualStudio —— Batch檔案設定環境變數並啟動VS專案BAT變數
- 簡單介紹Linux環境變數檔案Linux變數
- Django 專案如何通過載入不同 env 檔案來區分不同環境Django
- js動態載入 js檔案和 css檔案JSCSS
- 【ansible】關於ansible執行過程中載入環境變數問題變數
- Laravel 和 Lumen 中通過環境變數配置對應的 env 檔案Laravel變數
- javascript如何動態載入js檔案JavaScriptJS
- 詳解vue-cli4環境變數與分環境打包方法Vue變數
- Vue專案打包後動態獲取自定義變數Vue變數
- Linux檔案過濾及內容編輯處理命令總結!Linux
- Liunx運維(三)-檔案過濾及內容編輯處理運維
- springMVC(二)——處理返回值、常用註解、檔案上傳下載、異常處理、過濾器、攔截器SpringMVC過濾器
- Mac寫入環境變數指令Mac變數
- Drools與動態載入規則檔案
- win10新增環境變數無效怎麼辦 win10配置環境變數沒反應處理方法Win10變數
- input檔案選擇框檔案過濾引數accept
- Rollup處理並打包JS檔案專案例項JS
- Linux 學習筆記--環境變數與檔案查詢Linux筆記變數
- Hyperledger Fabric 通道配置檔案和容器環境變數詳解變數
- OpenMP 環境變數使用總結變數
- 第三章 檔案過濾及內容編輯處理命令
- Java使用javacv處理影片檔案過程記錄Java
- Unity3D動態載入FBX檔案Unity3D
- Protobuf 動態載入 .proto 檔案並操作 Message
- MVC使用異常過濾器處理異常MVC過濾器
- Golang1.16 使用embed載入靜態檔案Golang
- GBASEDBTSERVER 環境變數7GBASEDBTSHMBASE 環境變數 (UNIX™)Server變數
- 使用 Python 處理 CSV 檔案Python
- Oracle RAC 環境 引數檔案的啟動順序Oracle
- 『忘了再學』Shell基礎 — 23、其他環境變數配置檔案變數
- Python-PyCharm下載與環境變數PythonPyCharm變數