Files
svn-manager/01-技术选型.md
2026-02-03 23:24:32 +08:00

130 lines
3.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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提供现代化的用户体验