原創 每日構建實踐篇(一)

2021-03-31 08:56:30 字數 1954 閱讀 7202

看了

joel spolsky的《軟體開發成功12法則》和《

daily builds are your friend

》,對於每日構建的必要性和實用性都深有感觸。於是為自己的專案新增指令碼以實現快捷的每日構建,並記述這個嘗試的整個過程,方便以後參考。

所謂的每日構建就是每天至少一次的重新建立整個工程,每日構建本身只能算是乙個保護**有效性和快速修改快速出品的手段,但是要想快速將專案成果由**構建成最終出品形式(如安裝程式,cd映象等)就需要一套工具的支援還有相應指令碼的設定,每日構建需要做的工作正是實現這個過程。

每日構建過程中有很多環節,基礎流程是從源**管理系統中取出最新版本的原始碼,然後通過編譯器編譯,最後使用安裝程式打包。我首先由從源**管理系統中取出最新版本的原始碼開始。

這裡講解的是visual sourcesafe的流程。

vss本身有***mand line模式,按照幫助文件中的說法,***mand line的命令可以實現vss介面程式的所有功能。而我現在只需要他的get(獲取最近版本),命令列如下:

ss get $/vss_code -i-y -r -glc:/daily_build_code [email protected]

ss

vss ***mand line模式的啟動程式名

get

獲取最近版本的命令名稱

$/vss_code

希望獲取的程式路徑,該路徑可以通過vss窗體程式的右鍵屬性功能獲取

-i-y

對提問回答y,如果沒有這個引數則執行命令會在提問時等待使用者輸入。回答n,是-i-n

-r

遞迴獲取,會把該目錄下的所有子目錄都取出來

-glc:/daily_build_code

用來指定獲取原始碼的路徑,如果不設定則使用vss的預設工作目錄

[email protected]

指定所有資訊輸出到log檔案

注意1:這裡指定了工作路徑,一般來說為了構建能夠不受原有環境的影響,最好每次構建都重新建立路徑。如果有可能應該專門提供一台機器用來做每日的構建。

注意2:如果不指定log檔案的絕對路徑的時候,log檔案會被建立到當前路徑,如果你頻繁的使用cd,md命令很可能會使這個位置不確定,所以建議使用絕對路徑來指定log檔案的位置。

以上的命令雖然是用來獲取最近版本的,但在現實中還需要設定當前的環境變數。

如果你的vss的服務端不在本機,需要指定服務路徑,如下:

set ssdir=//my_vss_server/vss_code

還需要指定使用者名稱和密碼,如下:

set ssuser = snail

set sspwd = chinaos.***

另外,如果你沒有將vss路徑加入系統設定中,需要指定vss路徑:

set path=c:/program files/microsoft visual studio/***mon/vss/win32/

最後要注意的是,因為指定了新的工作路徑,你需要保證該目錄的有效性。

這些工作都做完,得到的指令碼用批處理表現出來就像下面的樣子:

// vss.bat

set ssdir=//my_vss_server/vss_code

set ssuser=snail

set sspwd = chinaos.***

set path=c:/program files/microsoft visual studio/***mon/vss/win32/

c:

cd /

md daily_build_code

ss get $/vss_code -i-y -r -glc:/daily_build_code [email protected]

vss ***mon line提供的其他命令和引數,請參看vss的幫助文件

每日構建 一

每日構建 二 以前在做專案時,並沒有覺的每日構建有多麼重要,前公司主要給本公司做專案,專案自己人用,也沒覺的編譯,部署有多麼麻煩,之後到了其它公司才發現,每次去部署一次所花的時間和精力真是太傷神了。難度一 公司要部署的專案特別多,每個專案都親自去獲取原始碼,編譯,發布,就這工作量也不少,更不用說這工...

JWT實踐總結篇(一)

結語近期使用token的機制來實現使用者鑑權是越來越流行了,最近公司這類的專案也是超多。因此就把以前學過的jwt撿起來,特此貼出部落格分享我的總結,也是為了方便溫習。在專案中使用jwt的話,通常我會引用auth0,基於auth0編寫乙個工具類 工具類普遍編寫兩個方法,那就是建立jwt token和解...

linux每日一令網路篇

1.netstat命令 檢視服務連線的總數情況,如下命令所示 netstat antp awk end 命令解析 將查詢的資料資訊,按照行解析,awk利用第六列作為key來統計集中狀態 的數量。a被解析為建立了乙個字典型別。如上命令所示統計服務所有的連線狀態的連線數 time wait 10 lis...