由于需要用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) {
//
}
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 ");
}
}
可以下载相关jar包