`
lggege
  • 浏览: 375472 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java在Eclipse环境下调用Subclipse接口完成SVN操作(附源码)

    博客分类:
  • RCP
阅读更多
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
分享到:
评论
3 楼 yuxg 2014-04-28  
2 楼 zlf420 2013-09-25  
楼主你好,请问checkin如何实现,没有直接的接口可以调用,有copy操作,但如何生成.svn文件呢? 是不是有直接的检入接口而我没发现?
1 楼 changjinlin 2011-06-09  
[color=blue]顶,正好要用到这个

相关推荐

    eclipse中使用svn的插件(subclipse4.3.4、javahl1.14)

    那么资源是适合你的,我安装了TortoiseSVN 1.14.5,Spring Tool Suite 4 (Version: 4.8.0.RELEASE),提示我插件版本太旧,使用了对应版本(svn_subclipse.core_4.3.4&javahl_1.14)的插件能够在eclipse中正常使用...

    eclipse svn插件包 subclipse-site 1.8

    附件:eclipse的svn插件包 1、解压 2、将features里的文件拷贝到eclipse目录下的features中 将plugins里的文件拷贝到eclipse目录下的plugins中 3、重启eclipse show view - > other 中出现svn,就可以添加svn...

    Subclipse-Eclipse的SVN插件

    Subclipse是Eclipse集成开发环境(IDE)中的一个开源插件,它使用户能够在Eclipse中无缝地使用Subversion(SVN),一个流行的版本控制系统。这个插件极大地简化了开发者在Eclipse中进行版本控制的操作,包括代码的...

    Eclipse >=4.2 SVN离线安装包 subclipse-4.2.4

    Subclipse 是 Eclipse 的一个插件,它允许用户在 Eclipse 中直接与 SVN 服务器进行交互,进行版本控制操作。 Subclipse-4.2.4 是 Subclipse 的一个特定版本,适用于 Eclipse 4.2 及以上版本。这个离线安装包包含了...

    subclipse eclipse的svn插件

    Subclipse作为Eclipse的扩展,使得开发者在Eclipse环境中可以直接进行SVN的操作,无需离开IDE,极大地提高了开发效率。 Subclipse插件提供了丰富的功能,包括但不限于: 1. **项目导入与导出**:用户可以方便地将...

    Subclipse eclipse svn插件

    Subclipse是Eclipse集成开发环境(IDE)中的一个开源插件,主要用于支持版本控制系统Subversion(SVN)。这个插件让开发者能够在Eclipse中直接进行版本控制操作,如提交、更新、合并、分支和标签等,极大地提高了...

    SVN Eclipse插件Subclipse安装和配置

    Subclipse是Eclipse的一个插件,它将SVN的功能集成到Eclipse中,使得开发者可以在Eclipse环境中方便地进行版本控制操作。下面将详细介绍Subclipse的安装和配置过程。 首先,安装Subclipse插件。在Eclipse中,可以...

    eclipse SVN插件 subclipse1.8.4 离线安装包

    Subclipse 是一个为 Eclipse IDE 添加 Subversion 支持的项目。支持几乎所有版本的Eclipse。Subclipse 1.8.4 ,支持Subversion 1.7.0,支持离线安装。解压后即可安装。

    eclipse svn 最新插件 subclipse

    Eclipse SVN最新插件Subclipse是为Eclipse IDE提供的一款强大的版本控制系统,它使得开发者能够在Eclipse环境中方便地管理和协作代码。Subversion(SVN)是广泛应用的版本控制系统,用于跟踪文件和目录的修改,方便...

    eclipse svn插件 subclipse

    Subclipse是Eclipse集成开发环境(IDE)中的一个开源插件,主要用于支持版本控制系统Subversion(SVN)。Subversion是一个用于版本控制的系统,能够跟踪文件和目录的更改,便于团队协作开发。Subclipse作为Eclipse的...

    eclipse svn离线插件 subclipse-4.2.2+subclipse-javahl-1.9.7

    Subclipse提供了对Subversion(SVN)的强大支持,使得开发者可以在不离开Eclipse的情况下进行版本控制操作,如提交、更新、比较、合并等。Subclipse的两个主要组件是Subclipse本身和Subclipse JavaHL,这两个组件在...

    eclipse svn1.8插件下载

    Eclipse SVN 1.8 插件是专为Eclipse集成开发环境设计的一款版本控制系统工具,主要用于协同开发和代码管理。Subversion(简称SVN)是一个开源的版本控制系统,允许团队成员在一个共享仓库中存储、管理和跟踪代码变更...

    Subclipse(eclipse svn插件) 1.10.9.zip

    7. Subclipse还支持与其他版本控制系统工具的集成,如TortoiseSVN,使得开发者可以在Eclipse内使用熟悉的SVN操作,同时享受Eclipse提供的强大开发环境。 8. 要确保Subclipse的正常运行,记得检查Eclipse和Subclipse...

    SVN的安装包和svn的eclipse插件

    在本主题中,我们将详细探讨SVN的安装包及其在Eclipse集成开发环境中的应用。 一、SVN客户端与服务端安装 1. SVN客户端:客户端是开发人员用来与远程SVN仓库进行交互的工具,常见的有TortoiseSVN(Windows平台)和...

    eclipse svn离线插件subclipse

    eclipse svn离线插件subclipse

    eclipse下切换svn用户

    Subclipse 则是 Eclipse 的一个插件,用于在 Eclipse 中集成 SVN 的功能,方便开发者进行版本控制操作。然而,Subclipse 在处理 SVN 用户信息时存在一定的局限性,例如不支持方便地切换 SVN 用户以及无法直接修改已...

    subclipse - svn插件.zip

    Subclipse是一款针对Eclipse集成开发环境的Subversion(SVN)客户端插件,它使得开发者能够在Eclipse中方便地管理版本控制系统中的代码。Subversion是一个开源的版本控制系统,用于跟踪文件和目录的修改,便于团队...

    eclipse安装Subclipse(svn数据源):

    eclipse安装Subclipse(svn数据源): 一、在Eclipse里下载Subclipse插件 方法一:从Eclipse Marketplace里面下载 方法二:从Install New Software里下载 方法三:直接下载subclipse的zip文件 二、上传project到SVN...

    m2eclipse-subclipse eclipse插件

    然而,有时在Eclipse集成开发环境中,开发者可能会遇到无法直接将SVN项目检出为Maven项目的问题,这正是m2eclipse-subclipse插件发挥作用的地方。 **1. m2eclipse插件:** m2eclipse是Eclipse中用于支持Maven项目的...

Global site tag (gtag.js) - Google Analytics