3.1 KiB
3.1 KiB
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合并分支
技术优势总结
- 轻量级: 基于原生SVN命令,无需复杂的SVN客户端库
- 跨平台: JavaFX + Java 11实现一次编写,多处运行
- 易维护: 标准的Maven项目结构,清晰的代码组织
- 可扩展: MVC架构便于功能扩展和维护
- 用户友好: JavaFX提供现代化的用户体验