chore: initial project setup

This commit is contained in:
liu
2026-02-03 23:24:32 +08:00
commit 28b517da40
32 changed files with 3776 additions and 0 deletions

129
01-技术选型.md Normal file
View File

@@ -0,0 +1,129 @@
# 01-技术选型
## 推荐技术栈
### 1. UI框架
**选择JavaFX**
**理由:**
- 现代化UI组件支持CSS样式定制
- 响应式布局适合构建复杂的SVN管理界面
- 官方Scene Builder可视化设计工具开发效率高
- 跨平台性好
**对比Swing**
- Swing虽然成熟但UI组件较为陈旧
- JavaFX提供更丰富的动画和视觉效果
- JavaFX更适合现代桌面应用开发
### 2. 构建工具
**选择Maven**
**理由:**
- 生态成熟,依赖管理简单
- 项目结构标准化
- 插件丰富
- 社区支持好
### 3. 进程执行
**选择ProcessBuilder**
**理由:**
- Java原生无需额外依赖
- 足够应对SVN命令调用需求
- 支持环境变量配置和工作目录设置
**可选增强:**
- Apache Commons Exec提供更高级的进程管理功能
### 4. Java版本
**选择Java 11+**
**理由:**
- LTS长期支持版本稳定可靠
- JavaFX支持良好
- 性能优化完善
### 5. 辅助库(可选)
- **Jackson/Gson**: JSON解析解析SVN的XML/JSON输出格式
- **Logback/SLF4J**: 日志管理
- **JUnit 5**: 单元测试
## 架构设计
### MVC模式
```
├── Controller/ # 处理UI交互
│ ├── MainController.java
│ ├── CheckoutController.java
│ ├── UpdateController.java
│ └── CommitController.java
├── Service/ # 封装SVN命令
│ ├── SvnService.java
│ ├── CheckoutService.java
│ ├── UpdateService.java
│ ├── CommitService.java
│ └── StatusService.java
├── Model/ # SVN输出解析器
│ ├── SvnStatus.java
│ ├── SvnLog.java
│ └── SvnInfo.java
└── Utils/ # 工具类
├── ProcessUtil.java
├── LogUtil.java
└── ConfigUtil.java
```
## 项目结构
```
svn-manager/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/svnmanager/
│ │ │ ├── controller/
│ │ │ ├── service/
│ │ │ ├── model/
│ │ │ ├── util/
│ │ │ └── MainApp.java
│ │ └── resources/
│ │ ├── fxml/
│ │ ├── css/
│ │ └── application.properties
│ └── test/
│ └── java/
├── pom.xml
└── docs/
└── 01-技术选型.md
```
## 核心功能模块
### 1. 仓库管理
- Checkout检出仓库
- Update更新仓库
- Commit提交修改
### 2. 文件操作
- Add添加文件
- Delete删除文件
- Revert回退文件
### 3. 版本查看
- Status查看状态
- Log查看日志
- Diff查看差异
- Info查看信息
### 4. 分支管理
- Create Branch创建分支
- Switch切换分支
- Merge合并分支
## 技术优势总结
1. **轻量级**: 基于原生SVN命令无需复杂的SVN客户端库
2. **跨平台**: JavaFX + Java 11实现一次编写多处运行
3. **易维护**: 标准的Maven项目结构清晰的代码组织
4. **可扩展**: MVC架构便于功能扩展和维护
5. **用户友好**: JavaFX提供现代化的用户体验