130 lines
3.1 KiB
Markdown
130 lines
3.1 KiB
Markdown
# 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提供现代化的用户体验
|