我們開發的web應用,不但要面對開發、測試及生產環境,而且生產環境也有多個:不同的企業有不同的生產環境。不同的環境有各自的配置項,如資料庫連線。
如何將開發好的web應用,發布到各個環境中去,是乙個有些麻煩的問題。目前的做法是:
用vs build;
用壓縮軟體壓縮,打包;
通過遠端桌面複製到相應的環境;
解壓,複製到iis中;
修改配置項。
這樣的過程,繁瑣,且容易出錯。我們希望能做到一鍵發布:
在vs中,右鍵單擊專案,選擇發布;
在彈出的對話方塊中選擇要發布的目標,如揚子,單擊發布按鈕,即可完成發布。
要達到這樣的效果,需要:
定義好解決方案配置;
做好配置轉換;
配置好發布。
下面詳細描述做法。
vs支援為同乙個web專案定義不同的配置轉換,以便發布到不同的執行環境。
例如,對於web.service這一專案,定義了四個不同的配置轉換:
其對應關係分別是:
配置轉換名稱
含義web.debug.config
開發環境
web.release.config
測試環境
web.yangzi.config
揚子現場
web.yansan.config
燕山現場
這四個配置轉換檔案中,包含了各個不同的執行環境的特定內容,在我們這個例子中,就是資料庫連線串。對於不需要轉換的內容,統一定義在web.config檔案中。
那麼,怎樣建立這些轉換呢?web.debug.config、web.release.config這兩個轉換,是在專案建立時自動生成的,其他的,則需要根據專案的需要,進行手工建立。
具體步驟包括:定**決方案配置、建立web配置轉換。
1、在解決方案配置的下拉列表中,選擇 配置管理器:
2、在彈出的對話方塊中,下拉活動解決方案配置,選擇 新建:
3、在彈出的對話方塊中,定義配置的名字:
這裡給出的名稱,就是第一節第3步中選擇的配置名稱。
由於是針對現場的生產環境,所以選擇從release配置中複製。
選中web.config檔案,右鍵單擊,執行「新增配置轉換」,就會為所建立的配置生成對應的web配置檔案。
我們定義了解決方案配置項,但尚未為執行環境定製任何資訊。仍以資料庫連線串為例,看看如何為不同的執行環境配置不同的資料庫連線串。
做到這一點,需要進行web.config轉換以及spring配置轉換。
由於在執行環境中僅有web.config乙個配置檔案,而在vs中,不同執行環境中的配置項應該記錄在各自的配置檔案中。因此,需要經過適當的配置,使得vs在發布web應用時,將特定執行環境的獨特配置寫入到web.config檔案中。
首先,在web.config中定義連線串:
...
...
其次,在各配置轉換檔案中定義自己的專案。例如,如果揚子需要修改mm這個連線串,則可以在 web.yangzi.config中定義自己的值:
...
...
由於揚子mm連線串中密碼和預設值不同,需要進行單獨的設定:它「重寫」了/中mm那一項的連線串,並告知vs,在匹配上name的時候,替換屬性的值,也就是connectionstring的值。
我們現在的技術路線中,使用spring.net管理資料庫連線。如果連線串定義在spring.net專用的配置檔案,如spring.xml或base.xml中,而沒有使用web.config檔案中的連線串,那上面的步驟是沒有意義的。實際上,我們目前的專案就是這麼做的。
為此,需要對spring配置檔案進行調整,讓spring使用web.config中配置的字串。
原來的spring專用配置是:
...
為了讓spring使用web.config中的配置,需要將其調整為:
與原有配置相比,發生了兩點變化:
增加了...配置項,用於指明要從web.config中獲取的配置內容,這裡我們僅需要connecttionstring;
原來的常量,變成了變數:$,它就表示 mm物件的connectionstring屬性的值。
至此,所做的web配置就可以用於發布了。
最後一步是配置發布,完成了這一步,才可以在發布對話方塊中進行選擇。為此,要做三件事情:選擇名稱,選擇發布目的地,選擇解決方案配置。
選擇乙個名稱,以便發布時進行選擇。例如,目前的能源管理系統,可以建立的發布配置有:開發、測試、燕山,揚子等。
在vs中,右鍵單擊要發布的專案,在快捷選單中選擇發布,在彈出的發布web對話方塊中,下拉配置,選擇 新建配置檔案:
在彈出的對話方塊中,為配置檔案命名:
對於開發、測試環境,可以使用共享目錄,對於遠端的,可以使用ftp、web等連線方式。
在設定對話方塊中,選擇解決方案配置。
對話方塊中的配置,即解決方案配置,為第二步中建立的解決方案配置。
上面僅考慮了一次發布乙個web應用到乙個企業的清醒。萬一需要一次發布多個web應用到乙個企業,或者一次發布乙個應用到多個企業,或者一次發布多個應用到多個企業,僅通過這樣的配置,就滿足不了要求了。
怎麼辦?只好編寫指令碼了。
我們發布的內容,不僅僅是web應用,可能還要包括資料庫內容更新,如資料庫結構維護,資料庫內容維護等。這時候要想自動發布,可以考慮編寫特定的程式,放在vs中執行。
ANT一鍵發布
安裝ant 環境 ant home 碟符 apache ant 1.9.5 新增path 執行終端 win r 輸入cmd ant 如下提示即為正確安裝完畢 更改本地檔案路徑配置 build 126.xml 中修改如下標記部分 修改ant配置 專案中右鍵build.xml,選擇run as ant ...
一鍵發布專案
bin bash author yzd time 2017 07 04 tomcat home usr local tomcat shutdown tomcat home bin shutdown.sh starttomcat tomcat home bin startup.sh work dir ...
tomcat一鍵發布
linux下tomcat一鍵發布,包含停用服務 刪除war包 拷貝war包及備份 重啟服務等,以前的版本還包含svn更新及打包,後來在生產上怕出問題,改成本地打war包後,ftp上傳到指定目錄的方式。2.1 真實 檔名稱做了隱藏更改處理,修改檔案路徑後可使用。bin sh 1instance apa...