java 的svn客户端调用示例
2012-06-02 08:41
246 查看
1.pom依赖
2.java调用代码
输出:
API参考:
http://svnkit.com/javadoc/org/tmatesoft/svn/core/wc/SVNUpdateClient.html#doUpdate(java.io.File, org.tmatesoft.svn.core.wc.SVNRevision, boolean)
<dependency> <groupId>org.tmatesoft.svnkit</groupId> <artifactId>svnkit</artifactId> <version>1.3.5</version> </dependency>
2.java调用代码
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.dav.DAVRepositoryFactory; import org.tmatesoft.svn.core.internal.wc.DefaultSVNOptions; import org.tmatesoft.svn.core.wc.SVNClientManager; import org.tmatesoft.svn.core.wc.SVNLogClient; import org.tmatesoft.svn.core.wc.SVNRevision; import org.tmatesoft.svn.core.wc.SVNUpdateClient; public class SvnTest { static { DAVRepositoryFactory.setup(); } private SVNClientManager manager; private SVNURL repositoryBaseUrl; public SvnTest() { DefaultSVNOptions options = new DefaultSVNOptions(); manager = SVNClientManager.newInstance(options); // manager = SVNClientManager.newInstance(options, // "username","passwrod"); //如果需要用户名密码 try { repositoryBaseUrl = SVNURL .parseURIDecoded("http://svn.apache.org/repos/asf/logging/log4j/trunk/src/main/java/org/apache/log4j/or"); // 传入svn地址 } catch (SVNException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void test() throws SVNException { SVNLogClient logClient = manager.getLogClient(); // svn list DirEntryHandler handler = new DirEntryHandler(); // 在svn // co时对每个文件目录的处理,实现ISVNDirEntryHandler接口 logClient.doList(repositoryBaseUrl, SVNRevision.HEAD, SVNRevision.HEAD, false, true, handler); // 列出当前svn地址的目录,对每个文件进行处理 // svn co UpdateEventHandler svnEventHandler = new UpdateEventHandler(); // svn co时对每个文件的处理 SVNUpdateClient client = manager.getUpdateClient(); client.setIgnoreExternals(true); client.setEventHandler(svnEventHandler); File to = new File("e:\\log\\testsvn"); // co出來的文件存放目錄 client.doCheckout(repositoryBaseUrl, to, SVNRevision.HEAD, SVNRevision.HEAD, SVNDepth.INFINITY, false); // svn update client.setIgnoreExternals(true); client.setEventHandler(svnEventHandler); client.doUpdate(to, SVNRevision.HEAD, SVNDepth.INFINITY,true, false); } public static void main(String[] args) throws SVNException { SvnTest svntest = new SvnTest(); svntest.test(); } }
import java.util.ArrayList; import java.util.List; import org.tmatesoft.svn.core.ISVNDirEntryHandler; import org.tmatesoft.svn.core.SVNDirEntry; import org.tmatesoft.svn.core.SVNException; import org.tmatesoft.svn.core.SVNNodeKind; import com.alibaba.tools.code.SearchConfig; public class DirEntryHandler implements ISVNDirEntryHandler { @Override public void handleDirEntry(SVNDirEntry dirEntry) throws SVNException { System.out.println(dirEntry.getRelativePath() + "/" + dirEntry.getName()); } }
import java.io.IOException; import org.apache.commons.io.FileUtils; import org.tmatesoft.svn.core.SVNCancelException; import org.tmatesoft.svn.core.SVNNodeKind; import org.tmatesoft.svn.core.wc.ISVNEventHandler; import org.tmatesoft.svn.core.wc.SVNEvent; import org.tmatesoft.svn.core.wc.SVNEventAction; public class UpdateEventHandler implements ISVNEventHandler { public void handleEvent(SVNEvent event, double progress) { SVNEventAction action = event.getAction(); SVNNodeKind nodeKind = event.getNodeKind(); if (SVNNodeKind.DIR.equals(nodeKind)) { // folder System.out.println(event.getFile().getName()); } else { // treat as file for all other type if (action == SVNEventAction.UPDATE_DELETE) { try { System.out.println(event.getFile().getName() + "\t" + FileUtils.readFileToString(event.getFile())); } catch (IOException e) { } } else if (action == SVNEventAction.UPDATE_ADD || action == SVNEventAction.UPDATE_UPDATE) { try { System.out.println(event.getFile().getName() + "\t" + FileUtils.readFileToString(event.getFile())); } catch (IOException e) { } } } } public void checkCancelled() throws SVNCancelException { } }
输出:
/or jms/jms jms/MessageRenderer.java/MessageRenderer.java jms/package.html/package.html sax/sax sax/AttributesRenderer.java/AttributesRenderer.java sax/package.html/package.html DefaultRenderer.java/DefaultRenderer.java ObjectRenderer.java/ObjectRenderer.java RendererMap.java/RendererMap.java ThreadGroupRenderer.java/ThreadGroupRenderer.java package.html/package.html testsvn testsvn
API参考:
http://svnkit.com/javadoc/org/tmatesoft/svn/core/wc/SVNUpdateClient.html#doUpdate(java.io.File, org.tmatesoft.svn.core.wc.SVNRevision, boolean)
相关文章推荐
- java 的svn客户端调用示例
- java 的svn客户端调用示例
- delphi7编写客户端调用java服务器端webservice示例
- java 调用webservice (asmx) 客户端开发示例
- .NET作为客户端调用Java和.NET WebService 简单示例
- java 调用webservice (asmx) 客户端开发示例
- 基于JAX-WS调用Web Service的Java客户端
- 如何在Java客户端调用RESTful服务
- java方法调用之多态的补充示例(四)
- Redis的Java客户端Jedis的八种调用方式(事务、管道、分布式)介绍
- JAVA客户端调用memcached比较
- Eclipse使用axis2生成客户端调用时最后一步出现an error occurred while completing process -java.lang.reflect.InvocationTargetException
- [原]java中的post请求之raw请求--微信api调用java代码示例
- Java与WCF交互(一):Java客户端调用WCF服务
- Axis2+wsdl2java.bat生成客户端调用
- Redis的Java客户端Jedis的八种调用方式(事务、管道、分布式)介绍
- java 调用 .net webservice 示例
- Redis的Java客户端Jedis的八种调用方式(事务、管道、分布式…)介绍
- Solr JAVA客户端SolrJ 4.9使用示例教程
- webservice客户端(使用java代码调用服务端)