svn自動下載自動編譯
『壹』 公司想實現持續集成,對svn上的項目自動編譯,但怎樣的情況是合適的,即實現每日建構適合怎麼樣的情況
商業上可以使用IBM的BuildForge,也可以採用開源的Jenkins。
http://ke..com/view/3005512.htm?fr=aladdin
http://www.ibm.com/developerworks/cn/rational/advantage-rational-build-forge/index.html
『貳』 如何利用svn自動同步更新到網站伺服器
一、安裝 SVN伺服器程序
1.1運行 VisualSVN-Server-1.7.2.msi
1.2選擇程序安裝目錄 和 SVN倉庫目錄
我程序裝在 C:\Program Files\VisualSVN Server , SVN倉庫目錄在 D:\SVN
1.3 安裝完成,立即運行
二、伺服器配置
2.1伺服器維護界面
2.2倉庫目錄默認的內容
2.3創建新項目wapzucom
2.3創建用戶ve
2.4設置項目的用戶許可權
Properties Security Add 選擇剛創建的用戶 ve ok 應用 確認
三、創建測試伺服器目錄 D:\WWWROOT ,本地開發目錄 D:\WORKDIR
四、將代碼(D:\Code )導入到項目倉庫
輸入用戶名 密碼 並 勾選 保存認證
導入成功,並返回版本號1
五、導出項目代碼到工作副本、測試伺服器目錄
同理,另外導出一份到測試伺服器目錄D:\WWWROOT (測試伺服器的Apache目錄指向該位置)
六、使用Hooks自動更新測試伺服器代碼D:\WWWROOT
6.1 進入 D:\SVN\wapzucom\hooks 建立 post-commit.bat 文件
編輯其內容 為"C:\Program Files\VisualSVN Server\bin\svn.exe" update "D:\www\test" --quiet --username name --password pwd
或者可參考下面這段話:
接下來最關鍵的一步是,我們需要找到伺服器上安裝的版本庫的路徑下面,以版本庫名稱命名的文件夾下,有一個名字為hooks的文件夾,在這個文件夾下建立post-commit.bat這樣一個批處理文件,裡面的內容如下:
@echo off
「D:\VisualSVN Server\bin\svn.exe」 update 「D:\Apache Software Foundation\Apache2.2\htdocs\soupei360″ –username XXXXX –password XXXXX
update前面的路徑,是SVN伺服器端程序的執行文件路徑, 後面的是在伺服器上同步到的目錄的路徑,username和password後面是剛才建立用戶的用戶名和密碼,這段批處理的意思是,當我們在本地編寫代碼,然後通過svn的commit提交時候,首先提交到版本庫中,然後版本庫自動用這個批處理,把內容同步到伺服器上之前指定的文件夾中,從而實現本地和遠程同步操作。
兩款SVN配置軟體的具體配置教程可以通過搜索引擎得到具體設置方法,在此需要特意強調的是,一定要將本地和伺服器上的目錄都check out後,批處理才能夠自動同步,伺服器上的目標文件夾沒有check out的話,即使設置的路徑正確,也是不能同步的。
6.2 設置訪問許可權
我的電腦 右鍵 管理 服務和應用程序 服務 VisualSVN Server 右鍵 屬性 登陸 添加訪問許可權 用系統管理員賬號(我這里是user)
重啟伺服器
6.3測試Hooks工作是否正常
修改 index.php 狀態
提交修改
最後打開D:\WWWROOT\index.php 可以發現代碼已經被成功update
PS : 目錄說明
C:\Program Files\VisualSVN Server 伺服器安裝目錄
D:\SVN 倉庫更目錄
D:\WORKDIR 本地開發用的工作目錄
D:\WWWROOT 伺服器測試目錄(Apache 指向該目錄,即可實現工作目錄內容修改後提交到SVN自動發布到測試目錄)
『叄』 svn 提交的時候加上auto_XXX可以實現自動更新生產環境,而且只更改修改過的請問是如何實現的
利用SVN的post-commit這個鉤子可以實現,這個鉤子是在每次成功commit後,由SVN伺服器自動調用執行的。這個鉤子存放在SVN伺服器端該版本庫存儲路徑下的hooks文件夾內,如果是windows操作系統,那麼這個文件一般是一個.bat文件(也可以是其它可執行文件,比如post-commit.com文件)。你可以編輯這個文件,實現你想要的功能。
簡單思路:
1、使用svn命令行檢查提交的log中是否含有auto_XXXX;
2、如果含有auto_XXXX,則自動checkout或update代碼文件夾;
3、自動編譯該最新代碼文件夾;
4、將編譯結果復制到生產環境並安裝。
這只是簡單思路,其中其實還應該包括編譯後的錯誤報告、自動化測試、測試後的錯誤報告等等,因為你是要安裝到生產環境,要謹慎。
『肆』 SVN在伺服器端自動更新問題
一般來說,伺服器端的SVN客戶端自動更新都是通過post-commit這個鉤子實現的,這個鉤子存放在SVN伺服器對應的版本庫存儲路徑(不是指checkout出來的文件夾,指的是伺服器端的存儲文件夾)下的hooks文件夾內。
post-commit這個鉤子是當每次成功commit時,SVN伺服器自動調用執行的,通過這個鉤子就可以 實現commit時實時更新伺服器上的客戶端。
另外,如果不採用實時自動更新,而是定時更新,那一般是通過操作系統的定時任務來實現的,你就去看有沒有什麼定時任務了。
最後,還有一些是通過一些其它軟體來調度的,那就不好列舉了。
『伍』 怎樣通過SVN自動更新代碼到伺服器
把下面代碼添加了svn/hooks/post-commit里(替換部分路徑)。當有svn提交,系統發現提交的代碼涉及相關目錄,就會通過rsync把代碼同步到web伺服器。不過這里還需要做一個rsync免輸密碼的設置。
#!/bin/sh
lines="$(cd /projects && svn up | wc -l)"
if [ $lines -gt 1 ]
then
cd /projects && rsync -rv * [email protected]:/var/www/
fi
『陸』 怎樣利用腳本通過SVN介面自動獲取最新文件
[html] view plain
<project name="GetSVNHeadRevision">
<taskdef name="xmltask" classname="com.oopsconsultancy.xmltask.ant.XmlTask"/>
<property name="workingCopy" location="." />
<target name="default">
<exec dir="${workingCopy}" executable="svn">
<arg line="up" />
</exec>
<exec dir="${workingCopy}" executable="svn" output="svninfo.xml">
<arg line="info --xml ${workingCopy}" />
</exec>
<xmltask source="svninfo.xml">
< path="/info/entry/@revision" property="svn.head.rev" />
</xmltask>
</target>
</project>
通過antcall執行後,top revision會被保存在"svn.head.rev"屬性中。
『柒』 如何避免吧.svn文件編譯到classes目錄下
SVN是一個很好用的版本管理根據,但有一個很煩人的問題用eclipse編譯java Web應用時候會把.svn文件也編譯到classes文件夾下,這樣給提交和更新都帶來很大麻煩。如下是解決辦法:
右鍵點擊project
Properties -> Java Build Path -> Source 展開裡面的項目
選中 Excluded,點擊 Edit 按鈕
在 Exclusion patterns 中點擊 Add 按鈕
輸入 **/.svn/**
保存即可
『捌』 每次要用SVN更新項目 都需要手動跟伺服器的同步一下 能不能設置成自動同步的啊
你的SVN更新項目、手動跟伺服器同步分別指的是什麼?
你所說的更新項目是指update嗎?如果是這個的話,那肯定是要手動操作的,雖然理論上你可以做個定時任務,沒隔幾分鍾命令行方式執行update一次,但由於update時可能會報告沖突,這種自動執行update很可能讓你遺漏了沖突,得不償失。
『玖』 svn 自動部署到web伺服器設置問題
修改伺服器上的鉤子程序post-commit,將指定要發布的內容的文件夾導出(export)到tomcat目錄下就行了
鉤子程序post-commit是在執行commit操作後自動執行的,這樣每次commit後都自動執行一次導出操作,保持tomcat文件夾內容就是所要發布的內容
---------------------------------------------------------------------------
補充:
例如你版本庫的svn訪問地址是http://10.30.11.12:8080/svn/project1,你想把這個版本庫下的/trunk/web文件夾發布到tomcat上,發布到tomcat的文件夾地址是d:/tomcat/opt/web,svn的管理員用戶名是abc,密碼是12345,那麼這個鉤子程序應該就是:
svn export http://10.30.11.12:8080/svn/project1/trunk/web d:/tomcat/opt/web --force --username abc --password 12345 --no-auth-cache
(本人對linux不熟悉,這行指令如有與linux語法不一致的地方,請參考原理自行修改)
說明:
1、--force 是說強制覆蓋d:/tomcat/opt/web這個文件夾,避免這個文件夾不為空時報錯
2、--username abc --password 12345 是自動將用戶名和密碼作為參數傳送進去
3、--no-auth-cache 是說不緩存用戶名和密碼,這是出於安全考慮
4、svn export 是將所指定的url的內容導出到所指定的文件夾去。這里之所以不用update而用export,是因為update會導致生成一個隱藏.svn文件夾,這個文件夾是我們不需要的
當然了,如果整個發布的內容很多的話,建議還是用update,而不用export,因為update只更新有變化的部分,而export將重新導出所有內容,網路消耗比update大。
『拾』 如何構建java的自動取SVN代碼編譯、發布自動化系統,如果編譯錯誤後自動發送郵件給相應的開發人員
: 一般svn檢出來以後,要改下編碼,把jdk刪掉然後添加你電腦上的jdk,還有就是看什麼jar包沒引入的就映入一下