使用SVNKit从SVN中导出资源
一、简介
1、简介
SVNKit是一个纯Java版本控制(SVN)工具库(library)。
2、下载
在官网下载Standalone版本并解压,将解压后的svnkit-1.10.1\lib
下的jar添加到Build Path中。
二、样例
import java.io.File;
import org.tmatesoft.svn.core.SVNDepth;
import org.tmatesoft.svn.core.SVNURL;
import org.tmatesoft.svn.core.auth.ISVNAuthenticationManager;
import org.tmatesoft.svn.core.io.SVNRepository;
import org.tmatesoft.svn.core.io.SVNRepositoryFactory;
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;
public class SvnExportExample {
public static void main(String[] args) {
String name = "albert";
char[] password = { 'w', 'z', 'k' };
String url = "https://localhost:8443/svn/myrepository/hello-world";
String dest = "G:/demo/hello-world";
SVNRepository repository = null;
try {
//创建基于特定协议的SVNRepository驱动程序
repository = SVNRepositoryFactory.create(SVNURL.parseURIEncoded(url));
//创建身份验证管理器
ISVNAuthenticationManager authManager = SVNWCUtil.createDefaultAuthenticationManager(name, password);
//设置一个提供用户凭据的身份验证管理器
repository.setAuthenticationManager(authManager);
//输出一些信息来验证连接
System.out.println(String.format("Repository Root: %s", repository.getRepositoryRoot(true)));
long latestRevision = repository.getLatestRevision();
//创建客户端管理器并设置用户凭据
SVNClientManager clientManager = SVNClientManager.newInstance();
clientManager.setAuthenticationManager(authManager);
//使用SVNUpdateClient来导出
SVNUpdateClient updateClient = clientManager.getUpdateClient();
updateClient.setIgnoreExternals(false);
File dstPath = new File(dest);
SVNRevision revision = SVNRevision.create(latestRevision);
updateClient.doExport(repository.getLocation(), dstPath, revision, revision, null, true, SVNDepth.INFINITY);
} catch (Exception e) {
e.printStackTrace();
} finally{
System.out.println("Finish.");
}
}
}