Java在Eclipse环境下调用Subclipse接口完成SVN操作(附源码)
在Eclipse环境中使用SVN还是比较简单的, 因为已经Subclipse已经对SVN的操作进行了封装,只需要给你的Eclipse应用添加Subclipse,然后你自己的插件项目再对Subclipse进行依赖即可。具体实现如下:
一. 给Eclipse添加Subclipse插件
Subclipse下载地址:http://subclipse.tigris.org/servlets/ProjectDocumentList?folderID=2240
二. 新建EclipseRCP项目
三. 给Plugin项目添加依赖的Subclipse插件
a) org.tigris.subversion.clientadapter
b) org.tigris.subversion.clientadapter.javahl
c) org.tigris.subversion.clientadapter.javahl.win32
d) org.tigris.subversion.subclipse.core
四. 关键类说明
a)
SVNRepositoryInfo
我自己定义的一个用于放置SVN信息的一个JavaBean
b)
SVNRepositoryUtil
我自己定义的一个调用SVN的Util类
c)
ISVNClientAdapter
在客户端操作SVN的具体的类
d)
SVNUrl
代表SVN地址的一个类
e)
ISVNNotifyListener
对SVN执行的每一步操作的监听
f)
JhlClientAdapterFactory
Subclipse用于注册JHL依赖的dll的类
五. 关键代码说明
JhlClientAdapterFactory.setup();
该代码用于注册JHL所依赖的一些dll文件,所以,该方法只可以执行一次,dll注册完成后不可再执行,否则会有异常。具体JHL依赖的dll文件可以见:
eclipse\plugins\org.tigris.subversion.clientadapter.javahl.win32_1.X.X.X文件夹
String bestClientType = SVNClientAdapterFactory.getPreferredSVNClientType();
ISVNClientAdapter svnClient = SVNClientAdapterFactory.createSVNClient(bestClientType);
其实这段代码的含义是说,找到Subclipse可使用的SVNClient。
这里所谓的可用的SVNClient指的是:Subclipse提供了两种对SVN操作的liberary,一个是JHL,对应于org.tigris.subversion.clientadapter.javahl插件,一个是SVNKIT,对应于org.tigris.subversion.clientadapter.svnkit_1.6.0.1.jar插件。但事实上,SVNKit不可用,因为该插件没有对外Export任何Package。
svnClient.addNotifyListener(new SVNNotifyListener());
public class SVNNotifyListener implements ISVNNotifyListener {
public void setCommand(int cmd) {
}
public void logMessage(String message) {
System.out.println("Message :" + message);
}
public void logCommandLine(String message) {
System.out.println("CommandLine :" + message);
}
// …
}
ISVNNotifyListener是需要去实现的对SVN操作的监听事件。比如,在一次commit过程中,可能提交了很多文件,删除了几个文件,更新了几个文件,那么对于这样的一个过程中的小事件提供监听的功能。
SVNRevision
这是用于表示Svn版本的类,比如HEAD,BASE,或者文件后面的数字版本,或者时间版本 等。
方法参数中的recurse
指的是,如果是一个文件夹是否需要将其下面的所有子文件夹、子文件一起遍历出来,或者一起进行操作。
SVNUrl moduleUrl = new SVNUrl(repositoryInfo.getUrl() + moduleName);
svnClient.checkout(moduleUrl, destPath, revision, true);
这段就不解释了,很容易明白。
更详细的代码请下载源代码。
源代码基于Eclipse3.4,Subclipse1.6。在Eclipse3.3中进行少量修改也能使用。
项目基于Eclipse RCP,运行iwoo.svn.product,在ToolBar点击Checkout按钮即可在Console查看到输出结果,比如下面的日志:
CommandLine :checkout http://iwoo.googlecode.com/svn/trunk/temp.withsvn -r HEAD --depth=infinity --force
Message :A C:/A/B/C/.classpath
Status of C:\A\B\C\.classpath has changed
Message :A C:/A/B/C/.project
Status of C:\A\B\C\.project has changed
分享到:
相关推荐
Subclipse-Eclipse的SVN插件,用于在Eclipse中使用svn进行协同开发
Subclipse 是一个为 Eclipse IDE 添加 Subversion 支持的项目。支持几乎所有版本的Eclipse。Subclipse 1.8.4 ,支持Subversion 1.7.0,支持离线安装。解压后即可安装。
附件:eclipse的svn插件包 1、解压 2、将features里的文件拷贝到eclipse目录下的features中 将plugins里的文件拷贝到eclipse目录下的plugins中 3、重启eclipse show view - > other 中出现svn,就可以添加svn...
Eclipse SVN离线安装包,subclipse-4.2.4 ,最新版下载地址:https://dl.bintray.com/subclipse/releases/subclipse/
subclipse,用于eclipse的svn插件,离线版本
eclipse安装Subclipse(svn数据源): 一、在Eclipse里下载Subclipse插件 方法一:从Eclipse Marketplace里面下载 方法二:从Install New Software里下载 方法三:直接下载subclipse的zip文件 二、上传project到SVN...
eclipse svn插件 subclipse,安装教程https://blog.csdn.net/erhuobuer/article/details/106633558
Subclipse(eclipse svn插件) 1.10.9 取得其中的features和plugins文件夹,放到eclipse对应的目录下,重启eclipse
Subclipse eclipsesvn插件 选择eclipse-->help-->install new software...
eclipse svn离线插件 subclipse-4.2.2+subclipse-javahl-1.9.7
svn插件
eclipse安装Subclipse(svn数据源): 一、在Eclipse里下载Subclipse插件 方法一:从Eclipse Marketplace里面下载 方法二:从Install New Software里下载 方法三:直接下载subclipse的zip文件 二、上传project到SVN...
eclipse最新的svn插件,下载后将features和plugins中的jar包放入eclipse中的对应文件夹中即可~
让eclipse下的svn插件subclipse显示英文
SVN的Eclipse插件-Subclipse安装指南
subclipse - svn插件.zip
Eclipse--->SVN插件:subclipse-4.3.3(离线安装包)
site-1.4.5.zip subclipse eclipse 下的svn 插件,不用在线安装,解压拷贝就可以用 ,可以用于eclipse3.x
SVN的安装包,包括客户端和服务端的安装包,还有eclipse的svn的插件