chore: initial project setup
This commit is contained in:
129
01-技术选型.md
Normal file
129
01-技术选型.md
Normal 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提供现代化的用户体验
|
||||
Reference in New Issue
Block a user