java开发怎么连接svn,java调用svnkit实现svn功能

把svnkit.jar添加到项目中,用于实现svn功能。 把jackson-all-1.6.2.jar添加到项目中,用于显示树列表。把javaee.ar添加到项目中。 新建一个类(SVNUtil.class)实现svn功能          private String svnRoot;     private String userName;     private String password;     private SVNRepository repository;         /***      * 构造方法      * @param svnRoot      *             svn根目录      */     public SVNUtil(String svnRoot) {        this.svnRoot=svnRoot;     }     /***      * 构造方法      * @param svnRoot      *             svn根目录      * @param userName      *             登录用户名      * @param password      *             登录密码      */     public SVNUtil(String svnRoot, String userName, String password) {        this.svnRoot=svnRoot;        this.userName=userName;        this.password=password;     } /***      * 通过不同的协议初始化版本库      */     private static void setupLibrary() {        // 对于使用http://和https://        DAVRepositoryFactory.setup();        //对于使用svn:/ /和svn+xxx:/ /        SVNRepositoryFactoryImpl.setup();        //对于使用file://        FSRepositoryFactory.setup(); } 每次连接库都进行登陆验证     /***      * 登录验证      * @return      */     public boolean login(){        setupLibrary();        try{            //创建库连接           repository=SVNRepositoryFactory.create(SVNURL.parseURIEncoded(this.svnRoot));            //身份验证            ISVNAuthenticationManager authManager = SVNWCUtil            .createDefaultAuthenticationManager(this.userName,                   this.password);            //创建身份验证管理器            repository.setAuthenticationManager(authManager);            return true;        } catch(SVNException svne){            svne.printStackTrace();            return false;        }     } 下面的方法实现查询给定路径下的条目列表功能 /***      *      * @param path      * @return 查询给定路径下的条目列表      * @throws SVNException      */     @SuppressWarnings("rawtypes")     public List listEntries(String path)            throws SVNException {        Collection entries = repository.getDir(path, -1, null,               (Collection) null);        Iterator iterator = entries.iterator();        List svns = new ArrayList();        while (iterator.hasNext()) {            SVNDirEntry entry = (SVNDirEntry) iterator.next();            SVN svn = new SVN();            svn.setCommitMessage(entry.getCommitMessage());            svn.setDate(entry.getDate());            svn.setKind(entry.getKind().toString());            svn.setName(entry.getName());            svn.setRepositoryRoot(entry.getRepositoryRoot().toString());            svn.setRevision(entry.getRevision());            svn.setSize(entry.getSize()/1024);            svn.setUrl(path.equals("") ? "/"+entry.getName() : path +"/"+entry.getName());            svn.setAuthor(entry.getAuthor());            svn.setState(svn.getKind() == "file"?null:"closed");            svns.add(svn);        } 新建一个SVNServlet 添加一个方法用于把java对象转换为json字符串 /**      * 将java对象转换为json字符串      *      * @param obj      *            :可以为map,list,javaBean等      * @return json字符串      * @createTime 2010-11-23 下午07:42:58      */     public static String object2Json(Object obj) {        try {            StringWriter sw = new StringWriter();            JsonGenerator gen = new JsonFactory().createJsonGenerator(sw);            mapper.writeValue(gen, obj);            gen.close();            return sw.toString();        } catch (Exception e) {            e.printStackTrace();        }        return null;     }       protected void doGet(HttpServletRequest request,            HttpServletResponse response) throws ServletException, IOException {        // TODO Auto-generated method stub        this.doPost(request, response);     }           protected void doPost(HttpServletRequest request,            HttpServletResponse response) throws ServletException, IOException {        // TODO Auto-generated method stub        Object svns = null;        request.setCharacterEncoding("UTF-8");        response.setCharacterEncoding("UTF-8");        String path = request.getParameter("pid");        String url = "svn://localhost/svndemo1";        String usrName = "usrName";        String password = "password";        if (path == null) {            path = "";        }        path = new String(path.getBytes("ISO-8859-1"),"UTF-8");        String type = request.getParameter("type");        PrintWriter out = response.getWriter();        try {            SVNUtil svnUtil = new SVNUtil(url, usrName, password);            if (svnUtil.login()) {               /*用于查询历史记录 if ("history".equals(type)) {                   List svnl = svnUtil.getHistory(path);                   HashMap sv = new HashMap();                   sv.put("total", svnl.size());                   sv.put("rows", svnl);                   svns = sv;               } else {*/                   svns = svnUtil.listEntries(path);               //}               //把java对象转换成json字符串               String json = SVNServlet.object2Json(svns);               out.print(json);            } else {               System.out.println("验证失败");            }        } catch (SVNException ex) {            ex.printStackTrace();        }        out.flush();        out.close();     } 新建一个index.jsp用户显示版本数列表,页面显示我使用了jquery-easyui模板     SVN    

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值