使用 maven 打包配置文件

以往項目部署時, 項目的相關配置文件會在服務器上的部署腳本中被替換, 這樣導致的問題是: 服務器上的配置文件缺少維護, 並不能被開發人員及時看到,因此在部署時因爲配置文件導致的問題頻發.

我們希望在編譯打包的過程中,將對應的配置文件導入到相應的位置,這樣服務器就僅需要做好部署的工作就可以了.

 

下面以web 項目爲例

 

項目下面的env 目錄存放環境變量(web項目)

 

dev 代表本地開發環境

qa 代表測試服務器環境

product代表生產服務器環境

 

具體配置文件如何存放應該根據項目的不同而區別對待


resources 中的配置文件最終被編譯打包後放在 WEB-INF/classes中

webinfo 中的配置文件最終被編譯打包後在 WEB-INF中

 

下面介紹一下 maven的 profiles


Web項目的pom 中有這麼一段

這段的意思是 不同的profiles參數會設定不同的變量值

既 package.env=dev/qa/product

  

 這個標籤代表省缺情況下 使用dev   

 Ok,這樣寫完後 就可以根據mvn的profiles 參數而設定了package.env的值

package.env變量的值將在下面這個插件: maven-war-plugins 中使用


        

Ok <directory> 設定源路徑 <targetPath>設置目標路徑

該插件在編譯時將會把<directory> 中的文件導入到<targetPath> 中去

下面來介紹 maven 的幾種常用命令以及 profiles的用法

 

mvn clean 清理項目生產的臨時文件,一般是模塊下的target目錄 

mvn compile 在target目錄下編譯生成class

mvn package 在 target 目錄下打包生成 jar/war等

mvn install 安裝到maven倉庫中

mvn test 測試命令,或執行src/test/java/下junit的測試用例. (目前沒有用到)

 

profiles 使用時 只需要在上述命令後面 加上 -P[profiles],例如

如果你的操作系統是windows ,並且maven安裝配置正確

在CMD中將當前目錄移至pom.xml所存在的目錄下:

mvn package –Pdev 就可以就將該項目 打包到targert 中並且使用了profiles= dev


在這裏 mvn package = mvn package –Pdev

Eclipse 中 pom 上 右鍵run as -> maven build

 

 



還有一個問題需要解決就是maven 的目錄結構


 

上面是maven默認的目錄結構

但是我們的項目並沒有完全遵守,比如


這樣導致的結果是編譯出錯,這就需要藉助下面兩個插件:

 

maven-resources-plugin

 

有了這個插件我們就可以在 build 標籤下添加需要加入的resources目錄

build-helper-maven-plugin



這個插件可以增加源文件的目錄

 

 

 

 

打包的其他方法:

使用 一個parent 項目讓其他項目作爲他的module ,

pom如下

 

注意 packaging 的值是pom

他使用了 modules 標籤將其他的項目作爲自己的模塊

爲他執行install 就會自動根據依賴順序進行打包,可以參考:

http://juvenshun.iteye.com/blog/305865

 




發佈了56 篇原創文章 · 獲贊 6 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章