Svnkit的使用

Feb 4, 2015


  由于需要用Java代码直接操纵控制SVN,比方下载SVN的代码,网上找到了大牛直接徒手写的代码, 但是后来发现了svnkit这么个东西,直接进入官网可以看到它的例子,由于我得需求比较简单,只需要下载SVN的代码,所以我就直接借鉴了网上现成的代码,加上svnkit的jar包就可以执行了,注意用户名和密码要正确。 事例源码如下:

package svnkit;
import java.io.File;
import org.tmatesoft.svn.core.SVNDepth;
import org.tmatesoft.svn.core.SVNException;
import org.tmatesoft.svn.core.SVNURL;
import org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryFactoryImpl;
import org.tmatesoft.svn.core.internal.wc.DefaultSVNOptions;
import org.tmatesoft.svn.core.wc.ISVNOptions;
import org.tmatesoft.svn.core.wc.SVNClientManager;
import org.tmatesoft.svn.core.wc.SVNRevision;
import org.tmatesoft.svn.core.wc.SVNUpdateClient;
import org.tmatesoft.svn.core.wc.SVNWCUtil;

/*此类执行的操作是把版本库中的内容check out到本地目录中*/
public class CheckOut {
	
	//声明SVN客户端管理类
	private static SVNClientManager ourClientManager; 

	public static void main(String[] args) throws Exception {

	//初始化支持svn://协议的库。 必须先执行此操作。 
	SVNRepositoryFactoryImpl.setup();

	//相关变量赋值
	SVNURL repositoryURL = null;
	String svnURL = "https://10.255.219.105:369.。。。";
	try {
		repositoryURL = SVNURL.parseURIEncoded(svnURL);
	} catch (SVNException e) {
		System.out.println(e.toString());
	}
	String name = "xxx";
	String password = "xxxxxx";
	ISVNOptions options = SVNWCUtil.createDefaultOptions(true);

	//实例化客户端管理类
	ourClientManager = SVNClientManager.newInstance((DefaultSVNOptions) options, name, password);

	//要把版本库的内容check out到的目录
	File wcDir = new File("e:/svncode1");

	//通过客户端管理类获得updateClient类的实例。
	SVNUpdateClient updateClient = ourClientManager.getUpdateClient();
	/*
	* sets externals not to be ignored during the checkout
	*/
	updateClient.setIgnoreExternals(false);

	//执行check out 操作,返回工作副本的版本号。
	long workingVersion= updateClient
	.doCheckout(repositoryURL, wcDir, SVNRevision.HEAD, SVNRevision.HEAD, SVNDepth.INFINITY,false);
	System.out.println("把版本:"+workingVersion+" check out 到目录:"+wcDir+"中。");
	Process process = Runtime.getRuntime().exec("cmd /k cd /d E:\\maven\\maven0703  mvn compile ");
	}

}