# 墨一助手 **Repository Path**: wolfox/inkyi-assistant ## Basic Information - **Project Name**: 墨一助手 - **Description**: 墨一助手 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-05 - **Last Updated**: 2026-07-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 墨一助手 Java Swing 桌面应用,集成 JCEF 内嵌浏览器、RSyntaxTextArea 代码编辑器、H2 本地数据库。 ## 技术栈 | 组件 | 技术 | |------|------| | UI 框架 | Swing + FlatLaf 3.7 + MigLayout 11.3 + SwingX | | 代码编辑 | RSyntaxTextArea 3.6.2 + LanguageSupport 3.4.1 | | 内嵌浏览器 | JCEF 132.3.1 | | 数据库 | H2 | | ORM/映射 | MapStruct 1.6.3 + Lombok 1.18.40 | | 日志 | Logback 1.5.25 + SLF4J 2.0.17 | | Java 版本 | 25 | | 构建 | Maven + flatten-maven-plugin + maven-shade-plugin | ## 模块架构 ``` inkyi-assistant/ ├── inkyi-assistant-core/ # 核心启动层 — 上下文、事件总线、定时任务、H2 存储初始化 ├── inkyi-assistant-store/ # 数据持久层 — H2, MapStruct + Lombok 注解处理 ├── inkyi-assistant-app/ # 主应用层 — Swing UI, 入口: AssistantAppStarter ├── inkyi-assistant-jcef/ # JCEF 浏览器集成 └── inkyi-assistant-sync/ # 同步模块(空占位) ``` ## 构建与运行 ```bash # 完整构建(跳过测试,自动触发 jpackage 生成原生应用) mvn clean package -Dmaven.test.skip=true # 单模块编译(增量开发时使用) mvn compile -pl inkyi-assistant-app -am # 运行 java --enable-native-access=ALL-UNNAMED -jar packaging/inkyi-assistant-app-.jar ``` 构建输出: - `mvn package` 输出 jar 到 `packaging/` 目录 - macOS/Windows/Linux 上自动调用 jpackage 生成原生应用到 `dist1/` ## 启动流程 ``` AssistantAppStarter.main() → SwingUtilities.invokeLater() 确保 EDT 线程 → StartLoadingWindow(加载动画) → LoadingTask.doInBackground()(SwingWorker 后台线程) → InkAssistCoreApplication.run() 初始化核心服务 ├── SimpleContext(UUID 标识) ├── EventBus(进程内事件总线) ├── ScheduledTaskRegistrar(Cron 定时任务注册器) └── H2Store(本地数据库, 路径 ~/inkstorev1, 用户/密码 inkyi/inkyi) → AssistantAppApplication.main() 构建主界面 ```