# 个人知识管理系统 - 命令行版本 (PKM CLI) 这是一个基于Java的个人知识管理系统,提供完整的命令行界面来管理你的笔记和知识库。 ## 项目结构 ``` PKM/ ├── pom.xml # Maven配置文件 ├── src/ │ ├── main/ │ │ └── java/ │ │ └── com/ │ │ └── example/ │ │ ├── App.java # 主应用程序入口 │ │ ├── cli/ │ │ │ └── CommandParser.java # 命令解析器 │ │ ├── model/ │ │ │ ├── Note.java # 笔记实体类 │ │ │ └── ExportFormat.java # 导出格式枚举 │ │ └── service/ │ │ ├── storage/ │ │ │ ├── StorageService.java # 存储服务接口 │ │ │ ├── StorageException.java # 存储异常类 │ │ │ └── JsonStorageService.java # JSON存储实现 │ │ ├── export/ │ │ │ ├── Exporter.java # 导出器接口 │ │ │ ├── ExportException.java # 导出异常类 │ │ │ ├── ExporterFactory.java # 导出器工厂 │ │ │ ├── TxtExporter.java # TXT导出器 │ │ │ └── JsonExporter.java # JSON导出器 │ │ └── search/ │ │ └── SearchService.java # 搜索服务 │ └── test/ │ └── java/ │ └── com/ │ └── example/ │ ├── AppTest.java # 应用测试类 │ └── test/ │ └── EntityTest.java # 实体类测试 ├── target/classes/ # 编译输出目录 ├── pkm.bat # PKM快捷启动脚本 ├── run.bat # 运行脚本 ├── clean.bat # 清理脚本 ├── notes.txt # 笔记数据文件 └── README.md # 项目说明文件 ``` ## 功能特性 ### 核心命令 - `new` - 创建新笔记 - `list` - 列出所有笔记(支持标签过滤) - `view` - 查看笔记详情 - `edit` - 编辑笔记内容 - `delete` - 删除笔记 ### 标签管理 - `tag` - 为笔记添加标签 - `untag` - 从笔记移除标签 ### 搜索功能 - `search` - 按关键词搜索笔记 ### 导出功能 - `export` - 导出单个笔记 - `export-all` - 导出所有笔记 - 支持格式:TXT、JSON ### 其他 - `help` - 显示帮助信息 - `exit/quit` - 退出程序 ## 如何运行 ### 前提条件 - 安装Java 17或更高版本 - 确保Java在系统PATH中 ### 快速启动 使用PKM快捷脚本(推荐): ```bash # 交互模式 pkm.bat # 命令模式 pkm.bat help pkm.bat new "我的笔记" "笔记内容" pkm.bat list --tag java ``` ### 手动编译运行 ```bash # 编译项目 javac -cp src\main\java -d target\classes src\main\java\com\example\*.java src\main\java\com\example\cli\*.java src\main\java\com\example\model\*.java # 运行程序 java -cp target\classes com.example.App [命令] ``` ### 使用run.bat脚本 ```bash # 自动编译并运行 run.bat ``` ## 使用示例 ### 交互模式 ```bash > pkm.bat 欢迎使用个人知识管理系统 (CLI版) 输入 help 查看可用命令 pkm> new "Java学习笔记" "今天学习了面向对象编程..." 创建笔记: Java学习笔记 内容: 今天学习了面向对象编程... pkm> list 列出所有笔记: [1] Java笔记 (2023-10-01) [编程, 学习] [2] 设计模式笔记 (2023-10-05) [编程, 架构] pkm> exit 感谢使用个人知识管理系统! ``` ### 命令模式 ```bash # 创建笔记 pkm.bat new "Python学习" "学习Python基础语法" # 列出笔记 pkm.bat list # 按标签过滤 pkm.bat list --tag programming # 搜索笔记 pkm.bat search "设计模式" # 导出笔记 pkm.bat export 123e4567 txt my-note.txt # 查看帮助 pkm.bat help ``` ## 开发状态 当前版本已完成以下功能: ### ✅ 已实现 - [x] 完整的命令行界面和命令解析功能 - [x] Note实体类(包含完整的属性和方法) - [x] 存储服务接口和实现(JsonStorageService) - [x] 导出功能(TXT和JSON格式,使用工厂模式) - [x] 搜索服务(关键词、标签、模糊搜索等) - [x] 异常处理机制 - [x] 单元测试和验证 ### 🚧 开发中 - [ ] 将命令解析器与业务服务集成 - [ ] 笔记控制器和标签控制器 - [ ] 配置管理 ### 📋 待开发 - [ ] 批处理操作 - [ ] 数据导入功能 - [ ] 更丰富的搜索选项 - [ ] 统计功能(笔记数量、标签云) ## 技术栈 - Java 17 - Maven 3.x - JUnit 5 (用于测试) ## 许可证 此项目仅用于学习和演示目的。