# JavaProjectScaner **Repository Path**: TengTong/java-project-scaner ## Basic Information - **Project Name**: JavaProjectScaner - **Description**: 扫描 Java 项目,生成项目的注释文档(markdown),然后可以通过简单的HttpServer 浏览查看 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-29 - **Last Updated**: 2025-12-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # JavaDoc 生成器 一个基于 Java 语法分析的文档生成工具,能够自动扫描 Java 项目源代码,提取类、方法、属性等信息,并生成 Markdown 格式的文档。支持 WebServer 模式,提供 Web 界面浏览文档。 ## 功能特性 - ✅ 自动扫描 Java 项目的 `src` 目录下所有源代码文件 - ✅ 解析 Java 语法,提取类、属性、方法及其注释 - ✅ 支持 JavaDoc 注释解析 - ✅ 生成结构清晰的 Markdown 格式文档 - ✅ 文档按包名组织目录结构 - ✅ 命令行工具,易于集成和使用 - ✅ **WebServer 模式**:支持 Web 界面浏览文档 - ✅ **Markdown 转 HTML**:自动将 Markdown 文档转换为 HTML - ✅ **静态资源支持**:支持 CSS、JavaScript、图片等资源文件 - ✅ 支持 JDK 17+ - ✅ 高可读性、可维护性和扩展性的代码设计 ## 文档结构 生成的 Markdown 文档遵循以下结构: ```markdown # 类名 ## JavaDoc 类的 JavaDoc 注释内容 ## 属性 - 属性签名 属性的 JavaDoc 注释 ## 方法 ### 方法名 ```java 方法签名 ``` 方法的 JavaDoc 注释 #### 参数 - 参数名 (参数类型) #### 异常 - 异常类型 ``` ## 快速开始 ### 环境要求 - Java 17+ - Maven 3.6+ ### 构建项目 ```bash mvn clean package ``` 构建成功后,会在 `target` 目录下生成包含所有依赖的 JAR 文件。 ### 使用方法 ```bash java -jar target/javadoc-generator-1.0.0-jar-with-dependencies.jar [选项] ``` #### 命令行选项 | 选项 | 长选项 | 描述 | |------|--------|------| | `-h` | `--help` | 显示帮助信息 | | `-v` | `--version` | 显示版本信息 | | `-s` | `--source` | Java 源代码目录(默认: ./src) | | `-o` | `--output` | 文档输出目录(默认: ./docs) | | `-w` | `--webserver` | 启动 WebServer 模式 | | `-p` | `--port` | WebServer 端口号(默认: 8080) | | `-c` | `--config` | WebServer 配置文件路径(默认: webserver-config.json) | #### 示例 ```bash # 使用默认配置 java -jar target/javadoc-generator-1.0.0-jar-with-dependencies.jar # 指定源目录和输出目录 java -jar target/javadoc-generator-1.0.0-jar-with-dependencies.jar -s ./my-project/src -o ./my-project/docs # 启动 WebServer 模式 java -jar target/javadoc-generator-1.0.0-jar-with-dependencies.jar -w # WebServer 模式指定端口和配置文件 java -jar target/javadoc-generator-1.0.0-jar-with-dependencies.jar -w -p 8080 -c ./custom-webserver-config.json # 先生成文档再启动 WebServer java -jar target/javadoc-generator-1.0.0-jar-with-dependencies.jar -s ./src -o ./docs -w -p 8080 ``` ## 项目结构 ``` javadoc-generator/ ├── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── javadocgenerator/ │ │ │ ├── Main.java # 命令行入口类 │ │ │ ├── JavaDocGenerator.java # 主生成器类 │ │ │ ├── model/ # 数据模型包 │ │ │ │ ├── JavaClass.java # Java类模型 │ │ │ │ ├── JavaField.java # Java属性模型 │ │ │ │ ├── JavaMethod.java # Java方法模型 │ │ │ │ └── JavaParameter.java # Java参数模型 │ │ │ ├── scanner/ # 文件扫描器包 │ │ │ │ └── FileScanner.java # 文件扫描器 │ │ │ ├── parser/ # 语法分析器包 │ │ │ │ └── JavaParserWrapper.java # Java语法分析器 │ │ │ └── generator/ # 文档生成器包 │ │ │ └── DocGenerator.java # Markdown文档生成器 │ │ └── resources/ │ │ └── logback.xml # 日志配置文件 │ └── test/ │ └── java/ │ └── com/ │ └── javadocgenerator/ │ └── TestExample.java # 测试示例类 ├── pom.xml # Maven配置文件 └── README.md # 项目说明文档 ``` ## 技术栈 - **Java 17+**:项目开发语言 - **Maven**:项目管理工具 - **JavaParser**:Java 语法分析库 - **Apache Commons CLI**:命令行参数解析库 - **SLF4J + Logback**:日志框架 ## 代码设计 ### 核心组件 1. **`FileScanner`**:负责递归扫描指定目录下的所有 Java 文件 2. **`JavaParserWrapper`**:使用 JavaParser 解析 Java 文件,提取类、属性、方法等信息 3. **`DocGenerator`**:将解析得到的信息转换为 Markdown 格式的文档 4. **`JavaDocGenerator`**:协调各组件,完成整个文档生成流程 5. **`Main`**:命令行入口,处理用户参数 ### 设计原则 - **单一职责原则**:每个类只负责一项功能 - **接口隔离原则**:组件之间通过清晰的接口交互 - **依赖倒置原则**:面向接口编程,降低组件耦合 - **可扩展性**:设计考虑了未来功能扩展的需求 - **高可读性**:详细的代码注释和清晰的命名 ## 扩展建议 1. **支持更多文档格式**:可以扩展支持 HTML、PDF 等格式 2. **增强 JavaDoc 解析**:支持更复杂的 JavaDoc 标签和格式 3. **添加模板支持**:允许用户自定义文档模板 4. **集成 CI/CD**:作为构建流程的一部分自动生成文档 5. **添加 GUI 界面**:提供可视化操作界面 ## 许可证 MIT License ## 贡献 欢迎提交 Issue 和 Pull Request 来改进这个项目! ## 联系方式 如有问题或建议,请通过 GitHub Issues 与我们联系。