# DataService-Svnkit **Repository Path**: sdwl_git/DataService-Svnkit ## Basic Information - **Project Name**: DataService-Svnkit - **Description**: 一个安全、流畅、极简的远程SVN在线管理系统,解决了需要登录到远程服务器并通过命令行操作才能管理SVN服务器的烦恼,支持远程管理SVN服务器,关键功能操作发送邮件通知到相关人员。 - **Primary Language**: Scala - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 32 - **Created**: 2023-02-10 - **Last Updated**: 2023-02-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SVN资源权限管理系统 ## 项目简介 公司的项目使用的是SVN进行版本管理。但是SVN服务并没有提供友好的远程管理工具,每次对SVN进行操作还需要登录到服务器进行本地命令行方式操作,比较麻烦; 并且SVN服务本身记录的信息较少,如果不使用其他诸如文件、数据库等方式记录详细信息,单从SVN服务器本身查看仓库、用户等,很难知道谁是谁。 所以一直想做一个具有友好界面的管理工具。 之前做过一个基于Excel的进行SVN管理的工具[SVN管理插件](https://gitee.com/hy-wux/SVN-Management),可以基于Excel进行详细信息的记录,方便的实现仓库、组、用户等的创建、删除以及权限管理, 但是,仍然存在一些弊端:只能基于Windows系统、必须登录远程服务器、难以控制插件权限等。 因此一个基于Web的远程SVN资源权限管理系统诞生了。 他基于SpringBoot 2.1.x开发,整合了MyBatis数据操作、Shiro权限框架、Thymeleaf模板引擎、Svnkit仓库访问,可作为单独的应用独立运行,也可以作为一个模块集成到其他项目中。 可作为单体应用进行部署,也可以基于SpringCloud、SOFABoot、Motan、EDAS、Dubbo等分布式RPC架构进行部署,支持使用Zookeeper、Nacos、AliCloud ANS、Eureka、Consul等作为服务注册发现中心。 并且提供了用于在各种分布式架构下快速集成到自己的应用的Spring-Boot-Starter。 他让枯燥的SVN管理工作变得方便、简单、高效。 ## 项目架构 ### 项目核心功能 ```text Service-Integrates ├── service-integrates-email -- 整合邮件功能,实现系统的邮件配置及发送 ├── service-integrates-ini4j -- 整合ini4j,实现SVN服务器端配置文件的操作 ├── service-integrates-svnkit-api -- SVN资源权限管理系统 - 仓库、组、用户的管理接口 ├── service-integrates-svnkit-admin -- SVN资源权限管理系统 - 管理系统,通过注册中心调用生产者提供的功能 ├── service-integrates-svnkit-dispatcher-feign -- SVN资源权限管理系统 - 基于FeignClient的生产者调度器 └── service-integrates-svnkit-provider -- SVN资源权限管理系统 - 仓库、组、用户的管理接口的具体实现类 ``` ### 项目部署方案 ```text DataDataService-Svnkit ├── docs -- SVN资源权限管理系统文档 ├── dataservice-svnkit-registry -- SVN资源权限管理系统服务注册与发现中心 └── dataservice-svnkit-springcloud -- SVN资源权限管理系统基于SpringCloud的部署方案 ├── dataservice-svnkit-springcloud-consumer -- SVN资源权限管理系统 - 消费者 └── dataservice-svnkit-springcloud-producer -- SVN资源权限管理系统 - 生产者 ``` ## 内置功能 * 实现多个SVN服务器集中管理 * 创建SVN仓库、组、用户等,并通过Email的方式通知相关人员 * 仓库条目浏览。以树形展示条目的层级关系;以列表的形式展示仓库条目,包括条目名称、版本、最后提交人、最后提交时间 * 仓库条目权限。可以展示仓库访问权限、维护仓库访问权限,访问权限能够精确到每一个目录,并且在权限发生变动时通过Email的方式通知相关人员 * 能够为仓库设置组和用户、能够为组设置用户,并且通过Email的方式通知相关人员 * 能够修改SVN用户的密码,并且通过Email的方式通知相关人员 * 能够通过Excel导入的方式,批量创建仓库、用户;能够将仓库、用户的信息导出到Excel ## 项目依赖 ### 必须的依赖 * [Service-Framework](https://gitee.com/hy-wux/Service-Framework),框架程序,包含了一些基础功能 * [Service-Integrates](https://gitee.com/hy-wux/Service-Integrates),整合了其他一些组件,当前项目用到了svnkit、ini4j、email ### 可选的依赖 * [Service-Visual](https://gitee.com/hy-wux/Service-Visual),可视化功能,提供了一个通用后台管理框架,当作为独立应用部署时,可以依赖这个后台管理框架;当作为模块集成到自己的项目时,这个依赖可以不要 ## 部署方案 ### 限制条件 由于SVN服务本身不支持远程创建仓库、组、用户,并且svnkit也不支持远程创建仓库、组、用户以及权限设置。所以,该项目中实现创建仓库、组、用户以及权限设置功能的模块,必须在SVN服务器本地部署,即必须与SVN服务器部署在同一台服务器上,以实现本地管理。 ### SpringCloud 目前提供的默认部署方案是:基于SpringCloud、Eureka、FeignClient的分布式微服务部署方式。 后续再提供基于Dubbo、EDAS、Motan、Sofa等架构的部署方案。 ## 界面截图 可以通过界面方便、高效地完成SVN管理。并且在仓库创建、用户创建、密码修改、权限变更等关键功能点会发送邮件。 ![](docs/images/eureka-01.png) ![](docs/images/producer-swagger-01.png) ![](docs/images/index-01.png) ![](docs/images/consumer-swagger-01.png) ![](docs/images/email-config-01.png) ![](docs/images/email-config-02.png) ![](docs/images/email-config-03.png) ![](docs/images/svn-server-01.png) ![](docs/images/svn-server-02.png) ![](docs/images/svn-server-03.png) ![](docs/images/svn-repository-01.png) ![](docs/images/svn-repository-02.png) ![](docs/images/svn-repository-03.png) ![](docs/images/svn-repository-04.png) ![](docs/images/svn-repository-05.png) ![](docs/images/svn-repository-06.png) ![](docs/images/svn-repository-07.png) ![](docs/images/svn-repository-08.png) ![](docs/images/svn-repository-09.png) ![](docs/images/svn-repository-10.png) ![](docs/images/svn-repository-11.png) ![](docs/images/svn-repository-12.png) ![](docs/images/svn-repository-13.png) ![](docs/images/svn-group-01.png) ![](docs/images/svn-group-02.png) ![](docs/images/svn-group-03.png) ![](docs/images/svn-group-04.png) ![](docs/images/svn-group-05.png) ![](docs/images/svn-user-01.png) ![](docs/images/svn-user-02.png) ![](docs/images/svn-user-03.png) ![](docs/images/svn-user-04.png) ![](docs/images/svn-user-05.png) ![](docs/images/svn-self-01.png) ![](docs/images/svn-visual-01.png) ## 代码开源 ### GIT共享 ```text https://gitee.com/hy-wux/DataService-Svnkit.git ``` * 仓库设置 ```bash DataService-Svnkit> git init DataService-Svnkit> git config user.name 伍鲜 DataService-Svnkit> git config user.email hy_wux@outlook.com ``` * 项目共享 ```bash DataService-Svnkit> git remote add origin https://gitee.com/hy-wux/DataService-Svnkit.git DataService-Svnkit> git pull origin master DataService-Svnkit> git add dataservice-svnkit-* DataService-Svnkit> git add pom.xml DataService-Svnkit> git add README.md DataService-Svnkit> git commit -m SVN资源权限管理系统 DataService-Svnkit> git push origin master ``` * 项目提交 ```bash DataService-Svnkit> git pull origin master DataService-Svnkit> git add * DataService-Svnkit> git commit -m SVN资源权限管理系统 DataService-Svnkit> git push origin master ``` * 项目获取 ```bash git clone https://gitee.com/hy-wux/DataService-Svnkit.git ``` * 项目编译 ```bash mvn clean package -P deploy ```