新聞中心
要在Subversion(SVN)這種控制系統(tǒng),要在Eclipse IDE中使用Subversion,必須裝載Subversion插件,也就是Subclipse插件,本文介紹Subclipse插件的安裝和使用。

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專(zhuān)注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、小程序定制開(kāi)發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶(hù)創(chuàng)新互聯(lián)還提供了德令哈免費(fèi)建站歡迎大家使用!
安裝Subclipse
安裝Subclipse的最好方法是使用Eclipse Update Manager。在Eclipse 3.1中,它位于Help -> Software Updates -> Find and Install...菜單下。請(qǐng)選擇Search,查找要安裝的新特性,并以http://subclipse.tigris.org/update作為URL添加New Remote Site。
圖1:使用Eclipse Update Manager安裝Subclipse
掃描完更新后,您會(huì)看到一個(gè)可用特性的列表。我寫(xiě)這篇文章時(shí),Subclipse 0.9.33是最新的更新版本。
圖2:選擇最新的Subclipse更新版本
在接下來(lái)的界面中,會(huì)請(qǐng)求用戶(hù)接受許可證并選擇安裝位置。建議不要將新插件(包括Subclipse)安裝在默認(rèn)的Eclipse安裝目錄下,最好將其放在一個(gè)外部擴(kuò)展位置中。這會(huì)使手動(dòng)卸載這些特性更加容易,如果需要的話(huà);同時(shí)也使插件可以在多個(gè)版本的Eclipse安裝之間共享,比如發(fā)行版、嘗鮮(early access)穩(wěn)定版(M1、M2等等)和集成IDE版本。
圖3:選擇安裝位置
此時(shí),Update Manager已下載并安裝了所選特性,然后請(qǐng)求重啟Eclipse。
一旦重啟Eclipse,用戶(hù)就會(huì)在Preference對(duì)話(huà)框中看到一個(gè)新的SVN區(qū)域,并且還會(huì)看到有關(guān)Subversion活動(dòng)的其他視圖??梢允褂肳indow -> Show View -> Other...菜單將這些視圖添加到Java Perspective中。
圖4:添加關(guān)于Subversion活動(dòng)的視圖
我通常將SVN Repository視圖添加到Quick Views中,而將SVN Resource History添加到位于Java Perspective工作區(qū)底部的一個(gè)標(biāo)簽組中。這樣,在開(kāi)發(fā)過(guò)程中,這兩個(gè)視圖就近便可用了,同時(shí)也便于利用拖放來(lái)運(yùn)行某些任務(wù),比如“獲得資源歷史”(從諸如Navigator、Package Explorer、SVN Repository和Synchronize之類(lèi)的面向資源的視圖到SVN Resource History視圖)。
#p#
在Subclipse中配置SVN接口
可以配置Subversion服務(wù)器來(lái)使用下列協(xié)議之一:
?SVN協(xié)議,一種輕量級(jí)的有狀態(tài)協(xié)議,由獨(dú)立的Subversion服務(wù)器(svnserve)所使用。安全版本svn+ssh使用基于ssh的隧道。 ?http協(xié)議,基于WebDAV擴(kuò)展,通常被作為模塊部署在Apache HTTP服務(wù)器上。安全版本使用https,dev2dev CodeShare上的Subclipse安裝使用的就是該協(xié)議。 ?file協(xié)議,用于訪(fǎng)問(wèn)本地可用的Subversion庫(kù)(例如,共享驅(qū)動(dòng)器上的Subversion庫(kù)),它是最少選擇的庫(kù)。 Subclipse使用專(zhuān)門(mén)的適配器抽象化來(lái)利用上述協(xié)議??梢栽赪indow -> Preferences -> Team -> SVN對(duì)話(huà)框的插件屬性中選擇下列適配器中的一種。
圖5:選擇適配器
每一種適配器都有其自身的優(yōu)點(diǎn):
?JavaSVN是惟一完全基于Java的Subclipse客戶(hù)端,是默認(rèn)支持的。注意,JavaSVN不支持file:///協(xié)議。 ?JavaHL是包裝本地Subclipse API的瘦包裝器。該適配器是為Win32平臺(tái)預(yù)構(gòu)建的,但是在其他所有的平臺(tái)上必須手動(dòng)構(gòu)建(除非Unix發(fā)行版中包含它)。 ?命令行適配器,只有在不能安裝JavaHL并且Subclipse庫(kù)使用file:///協(xié)議時(shí)才可以使用。 大多數(shù)情況下都可以使用JavaSVN;只有需要時(shí)才選擇JavaHL或命令行適配器。參考資料小節(jié)中的鏈接可以幫助解決特定用例,如配置HTTP代理、SSL客戶(hù)端證書(shū),等等。
連接到CodeShare上的SVN庫(kù)
現(xiàn)在就可以連接到Subversion庫(kù)了。對(duì)于dev2dev CodeShare上的項(xiàng)目,可以在訪(fǎng)問(wèn)選項(xiàng)頁(yè)面中看到一個(gè)庫(kù)的URL,可以從Version控制項(xiàng)目菜單中找到該頁(yè)面。 這里是一個(gè)例子 。CodeShare SVN服務(wù)器要求用戶(hù)使用的用戶(hù)名和口令與其在dev2dev網(wǎng)站上所使用的相同。
圖6:連接到Subversion庫(kù)
如果連接參數(shù)設(shè)置正確,就可以看到一個(gè)SSL證書(shū)確認(rèn)對(duì)話(huà)框。
圖7:接受SSL證書(shū)
接受證書(shū)后,應(yīng)該就可以瀏覽庫(kù)并查看現(xiàn)有項(xiàng)目。
圖8:查看SVN庫(kù)中的現(xiàn)有項(xiàng)目
現(xiàn)在已經(jīng)準(zhǔn)備好,要開(kāi)始使用Subversion和Subclipse插件了!
#p#
查看SVN中的現(xiàn)有項(xiàng)目
在SVN Repository視圖中可以看到,在許多CodeShare項(xiàng)目以及使用Subversion的其他項(xiàng)目中都可以看到一種共同的布局,通常如下所示:
https://xjms-ra.projects.dev2dev.bea.com/svn/xjms-ra
+-- branches
+-- www
+-- xjms-ra
+-- mqseries (work in progress)
+-- activemq
+-- tags
+-- xjms-ra
+-- 0.0.1 (stable versions or releases)
+-- 0.0.2
+-- trunk
+-- www (project web site)
+-- xjms-ra (project source)
trunk文件夾中包含主線(xiàn)開(kāi)發(fā)源代碼;tags文件夾中包含穩(wěn)定版或發(fā)行版;branches文件夾中包含來(lái)自替代開(kāi)發(fā)線(xiàn)上的代碼。在Subversion中,標(biāo)簽和分支僅僅是選中的源代碼快照的版本化副本。若想獲得更多詳細(xì)內(nèi)容,請(qǐng)參閱Subversion book。
可以在SVN Repository視圖中選擇當(dāng)前項(xiàng)目的主線(xiàn)或者特定的標(biāo)簽或分支,并從彈出菜單中選擇Check Out As...動(dòng)作。接著就會(huì)出現(xiàn)一個(gè)指導(dǎo)性的標(biāo)準(zhǔn)New Project Wizard,它允許用戶(hù)選擇項(xiàng)目類(lèi)型(例如,Java或Simple Project)、項(xiàng)目名稱(chēng)和位置,并在需要時(shí)配置Java build路徑。
為新的CodeShare項(xiàng)目配置SVN庫(kù)
版本控制庫(kù)是任何項(xiàng)目的基礎(chǔ)架構(gòu)的重要部分,對(duì)于開(kāi)源項(xiàng)目(包括CodeShare上的項(xiàng)目)而言,它還在開(kāi)發(fā)人員與其他社區(qū)成員之間的交流中起著重要作用。例如,它允許終端用戶(hù)為最新的代碼捐獻(xiàn)補(bǔ)丁,并為重要的修復(fù)提供早期更新機(jī)制。由于它的重要作用,為一個(gè)新項(xiàng)目配置SVN庫(kù)并從一開(kāi)始就將所有的項(xiàng)目代碼置于版本控制之下就顯得非常重要了。
創(chuàng)建了新CodeShare項(xiàng)目之后,SVN庫(kù)就包含了trunk、tags和branches文件夾,以及trunk下的www模塊,它包含項(xiàng)目Web首頁(yè)的index.html文件。可以在SVN Repository視圖中驗(yàn)證這些,并使用該視圖中的彈出菜單上的動(dòng)作創(chuàng)建缺少的文件夾。
我們假設(shè)所有的源代碼、build腳本、文檔和其他項(xiàng)目資源被組織為一個(gè)Eclipse項(xiàng)目,那么就可以在Package Explorer或Navigator視圖中使用彈出菜單中的Team -> Share Project...動(dòng)作。Share Project Wizard會(huì)要求用戶(hù)選擇SVN庫(kù)類(lèi)型,然后在下一個(gè)頁(yè)面中,可以選擇一個(gè)現(xiàn)有庫(kù)或配置一個(gè)新庫(kù)。
圖9:在Share Project Wizard中選擇SVN庫(kù)類(lèi)型
在接下來(lái)的界面中指定模塊名。為了與CodeShare項(xiàng)目布局相匹配,我們應(yīng)該在trunk文件夾下創(chuàng)建模塊,因此,指定trunk/
圖10:指定模塊名
經(jīng)過(guò)確認(rèn)后,Subclipse會(huì)創(chuàng)建模塊,并將所有的項(xiàng)目文件導(dǎo)入SVN庫(kù)。
#p#
使用SVN庫(kù)
當(dāng)項(xiàng)目連接到SVN庫(kù)以后,在Package Explorer和Navigator視圖中會(huì)彈出一個(gè)Team菜單,顯示特定于Subversion的全部動(dòng)作??梢灾苯舆\(yùn)行Commit、Update、Add to svn:ignore,以及Version Control with Subversion一書(shū)中所描述的其他動(dòng)作。該書(shū)中的內(nèi)容也可以在Help -> Help Contents -> Version Control with Subversion下的Eclipse幫助系統(tǒng)中找到。
Subclipse插件還允許使用Eclipse的Team Synchronize視圖,它可以使用戶(hù)從庫(kù)中清楚地觀察到哪些項(xiàng)將要提交、哪些項(xiàng)已經(jīng)被其他開(kāi)發(fā)人員更改并需要更新。從這個(gè)Synchronize視圖中還可以執(zhí)行大多數(shù)的SVN命令。
可以使用彈出的Team -> Synchronize with Repository菜單或位于主工具欄上的Synchronize...向?qū)О粹o將項(xiàng)目或工作集添加到Synchronize視圖中。如果看不到該按鈕,那么請(qǐng)將Team命令添加到當(dāng)前視圖中;可以使用Customize Perspective對(duì)話(huà)框添加,該對(duì)話(huà)框可從主工具欄上的彈出菜單中獲得(單擊任意空白處),然后,使用Window -> Save Perspective As...菜單以相同的名稱(chēng)保存透視圖。
圖11:將命令組添加到當(dāng)前透視圖中
在工具欄下拉菜單中選擇Synchronize...動(dòng)作來(lái)啟動(dòng)向?qū)АT诘谝粋€(gè)界面中,它又讓用戶(hù)選擇SVN版本跟蹤系統(tǒng),然后會(huì)顯示標(biāo)準(zhǔn)資源選擇面板,用戶(hù)可以選擇同步整個(gè)工作區(qū),也可以選擇某組項(xiàng)目或者一個(gè)指定的工作集。
圖12:同步工作區(qū)、工作集或選中的資源
一旦完成創(chuàng)建,Synchronize視圖就可以使用版本控制系統(tǒng)安排自動(dòng)刷新的時(shí)間。可以通過(guò)Synchronize視圖菜單中的Schedule...菜單對(duì)其進(jìn)行配置。這將有助于用戶(hù)保持最新?tīng)顟B(tài),還可以看到其他開(kāi)發(fā)人員所做的所有改動(dòng)。
圖13:安排自動(dòng)刷新的時(shí)間
由于Subclipse仍在發(fā)展,所以用戶(hù)可能會(huì)遇到bug或者無(wú)法找到真正希望獲得的一些特性。這帶我們進(jìn)入下一個(gè)話(huà)題。
#p#
修補(bǔ)Subclipse
當(dāng)在Subclipse中遇到問(wèn)題時(shí),可以有多種選擇。如果是瑕疵問(wèn)題,那么可以簡(jiǎn)單地選擇不使用該產(chǎn)品或等待下一個(gè)版本。還可以搜索問(wèn)題跟蹤系統(tǒng)以及郵件列表檔案[email protected]和[email protected],有可能找到當(dāng)前問(wèn)題的應(yīng)對(duì)措施或解釋。如果這樣沒(méi)有幫助,那么可以在郵件列表中咨詢(xún)此問(wèn)題;如果有興趣試著自己解決,那么,下面的段落將簡(jiǎn)要介紹如何開(kāi)始調(diào)試和修補(bǔ)Eclipse。但是,如果非常希望有所捐助,那么一種好的方法是訂閱[email protected]郵件列表,從而使您所做的努力與其他開(kāi)發(fā)人員相協(xié)調(diào),根據(jù)項(xiàng)目路線(xiàn)圖調(diào)整您的想法。
| 庫(kù)路徑 | Jar 或Eclipse插件名 | 描述 |
| trunk/svnClientAdapter | svnClientAdapter.jar | 用于非 Windows 系統(tǒng),或者當(dāng)用戶(hù)需要構(gòu)建 svnClientAdapter 或 JavaHL 時(shí) |
| trunk/subclipse/core | org.tigris.subversion.subclipse.core | 特定于 Eclipse 的插件后端 |
| trunk/subclipse/javahl-win32 | org.tigris.subversion.javahl.win32 | 為 svnClientAdapter 和 JavaHL 預(yù)構(gòu)建本地 Windows 二進(jìn)制文件 |
| trunk/subclipse/ui | org.tigris.subversion.subclipse.ui | 特定于 Eclipse 的 UI |
| trunk/subclipse/feature-plugin | org.tigris.subversion.subclipse | 介紹,無(wú)代碼 |
| trunk/subclipse/feature | org.tigris.subversion.subclipse (feature) | Subclipse 特性 |
| trunk/subclipse/book | org.tigris.subversion.book | Eclipse 幫助小節(jié),包括 “Version Control with Subversion” 這本書(shū) |
| trunk/subclipse/book-feature | org.tigris.subversion.book (feature) | “Version Control with Subversion” 這本書(shū)的特寫(xiě) |
| trunk/subclipse/update-site | - | Subclipse 和 “Version Control with Subversion” 一書(shū)的特寫(xiě)的更新站點(diǎn) |
著手開(kāi)始真的非常容易,即使您以前從沒(méi)有使用過(guò)Eclipse插件。需要將Subclipse項(xiàng)目放入Eclipse工作區(qū)中。Subclipse項(xiàng)目的Subversion庫(kù)位于http://subclipse.tigris.org/svn/subclipse/,可以使用以前安裝的Subclipse插件或者諸如命令行Subversion客戶(hù)端或TortoiseSVN之類(lèi)的外部工具來(lái)查看代碼。還有一種非常好的辦法是在tigris.org Web站點(diǎn)上注冊(cè),并請(qǐng)求Subclipse項(xiàng)目的Observer角色。然后,就可以使用相同的用戶(hù)名連接到Subversion庫(kù)了(也可以用“guest”/“guest”進(jìn)行只讀訪(fǎng)問(wèn)),還可以在問(wèn)題跟蹤器(一個(gè)集成的Bugzilla庫(kù))上發(fā)表評(píng)論,并附上對(duì)問(wèn)題的補(bǔ)?。ㄈ绻械脑?huà))。
一旦連接到版本控制庫(kù),就需要在自己的工作區(qū)中檢查下述項(xiàng)目。對(duì)每一個(gè)模塊選擇Check Out As...,選擇一個(gè)位置和項(xiàng)目名(建議使用下表所列出的實(shí)際的插件名),并單擊Finish。
對(duì)于開(kāi)發(fā)和測(cè)試,只需要org.tigris.subversion.subclipse.core, org.tigris.subversion.subclipse.ui以及org.tigris.subversion.javahl.win32或svnClientAdapter;其他的模塊僅在打包整個(gè)插件特性或構(gòu)建更新站點(diǎn)時(shí)需要。
當(dāng)所有的項(xiàng)目都在Eclipse工作區(qū)中之后,就可以試著運(yùn)行了。使用Run -> Run...菜單(或Debug,在調(diào)試器下運(yùn)行),啟動(dòng)新的Eclipse Application類(lèi)型,并在Workspace Plug-Ins列表中選擇Subclipse插件。如果使用已安裝的Subclipse運(yùn)行IDE,那么應(yīng)該在External Plug-Ins列表中取消對(duì)Subclipse插件的選擇,但是要使其他插件均保持選中狀態(tài)。
圖14:運(yùn)行Eclipse應(yīng)用程序
單擊Run(或Debug),如果一切都配置正確,那么就會(huì)出現(xiàn)第二個(gè)Eclipse Workbench窗口;應(yīng)該可以打開(kāi)Subclipse視圖,并像Eclipse本身的實(shí)例一樣連接到庫(kù)。此時(shí),如果是在調(diào)試器下運(yùn)行,就可以開(kāi)始將斷點(diǎn)放到Subclipse類(lèi)、或Subclipse所使用的Eclipse核心類(lèi)中,調(diào)試器會(huì)停在這些斷點(diǎn)上。一個(gè)非常好的起點(diǎn)是org.tigris.subversion.subclipse.ui插件中的org.tigris.subversion.subclipse.ui.actions包,它包括菜單或工具欄中特定于Subclipse的UI動(dòng)作。注意,可以使用UI注冊(cè)這些動(dòng)作,可以在plugin.xml中聲明式地注冊(cè)(通常是action元素),或者是在Java代碼中編程式地注冊(cè),因此,這兩個(gè)地方都要查看。
#p#
假定已經(jīng)完成了最棘手的部分,并且已經(jīng)設(shè)法實(shí)現(xiàn)了更改,那么現(xiàn)在就該創(chuàng)建補(bǔ)丁并將其附在Subclipse 問(wèn)題跟蹤庫(kù)中的原始問(wèn)題上了。在創(chuàng)建補(bǔ)丁以前,請(qǐng)確保從版本控制庫(kù)中選擇最新的更改(如果有的話(huà)),并最后一次測(cè)試更改。如果一切都沒(méi)有問(wèn)題,那么就使用Team -> Create Patch...菜單來(lái)啟動(dòng)向?qū)?。選擇Save To Clipboard或Save In File System,并指定是否需要對(duì)子目錄進(jìn)行循環(huán)掃描來(lái)查看更改。
圖15:創(chuàng)建補(bǔ)丁
創(chuàng)建了補(bǔ)丁之后,就可以將其發(fā)送至[email protected]郵件列表了,或者也可以在問(wèn)題跟蹤器中創(chuàng)建問(wèn)題并將其附上。
結(jié)束語(yǔ)
諸如Subclipse插件之類(lèi)的Eclipse平臺(tái)開(kāi)源擴(kuò)展可以提高開(kāi)發(fā)人員的生產(chǎn)力,降低出錯(cuò)的可能性,并增強(qiáng)開(kāi)發(fā)團(tuán)隊(duì)內(nèi)部的交流。本文演示了如何安裝、配置和使用Subclipse插件來(lái)從Eclipse IDE內(nèi)部與Subversion版本控制系統(tǒng)進(jìn)行交互。
以Subclipse插件為例,本文還演示了如何設(shè)置一個(gè)環(huán)境以進(jìn)行Eclipse插件開(kāi)發(fā)、如何調(diào)試現(xiàn)有插件、如何創(chuàng)建補(bǔ)丁。事實(shí)上,任何Eclipse用戶(hù)都可以為該開(kāi)源擴(kuò)展以及Eclipse平臺(tái)本身捐獻(xiàn)想法和補(bǔ)丁。
【編輯推薦】
- Domino提供Eclipse的快速應(yīng)用程序開(kāi)發(fā)工具
- Eclipse 3.6 M7發(fā)布 可自定義Java代碼風(fēng)格
- Eclipse啟動(dòng)新計(jì)劃:通用的SOA平臺(tái)
網(wǎng)站欄目:在Eclipse里使用SVN必裝Subclipse插件
當(dāng)前URL:http://m.fisionsoft.com.cn/article/dpdospd.html


咨詢(xún)
建站咨詢(xún)
