使用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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- postman 變數 環境 過濾等Postman變數
- 批處理-刪除環境變數變數
- Shell啟動檔案與環境變數(轉)變數
- 【Linux入門教程】2 檔案許可權和訪問模式、環境變數、管道和過濾器Linux模式變數過濾器
- 下拉表關聯非同步載入- 引數動態過濾非同步
- 環境變數與檔案查詢變數
- 批處理 壓縮zip 並過濾部分檔案
- winexec執行bat檔案不能使用環境變數BAT變數
- 【ZIP】打包過濾指定目錄和檔案
- 3、Webserver如何處理動態檔案WebServer
- 如何動態載入js檔案JS
- 使用 setenv 配置檔案管理 Tomcat 的自定義環境變數Tomcat變數
- 詳解vue-cli4環境變數與分環境打包方法Vue變數
- js動態載入 js檔案和 css檔案JSCSS
- Django 專案如何通過載入不同 env 檔案來區分不同環境Django
- Linux 應用程式處理當前執行環境的環境變數(轉)Linux變數
- Vue專案打包後動態獲取自定義變數Vue變數
- Laravel 和 Lumen 中通過環境變數配置對應的 env 檔案Laravel變數
- 簡單介紹Linux環境變數檔案Linux變數
- shell程式設計之環境變數配置檔案程式設計變數
- javascript如何動態載入js檔案JavaScriptJS
- VisualStudio —— Batch檔案設定環境變數並啟動VS專案BAT變數
- maven 使用-P指定環境打包,linux移動配置檔案失敗,windows成功!MavenLinuxWindows
- Laravel ENV—— 環境變數的載入與原始碼解析Laravel變數原始碼
- AndroidStudio之NDK環境搭建,so檔案打包以及使用Android
- Mac寫入環境變數指令Mac變數
- maven打包時過濾檔案及排除依賴包Maven
- #環境變數 相關的環境變數請複製過來,可能會和變數
- iOS打包.a靜態庫檔案(入門)iOS
- Liunx運維(三)-檔案過濾及內容編輯處理運維
- 【ansible】關於ansible執行過程中載入環境變數問題變數
- GoldenGate初始載入過程變化資料處理Go
- win10新增環境變數無效怎麼辦 win10配置環境變數沒反應處理方法Win10變數
- 環境變數變數
- 測試環境控制檔案被誤刪的故障處理
- OpenMP 環境變數使用總結變數
- 環境不確定因素處理(轉載)
- linux登入bash shell環境執行環境變數Linux變數