# 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提供现代化的用户体验