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

3.1 KiB
Raw Permalink Blame History

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