# Maven 项目运行说明 ## 项目已成功创建并测试完成 ### 项目信息 - **项目类型**: Maven Java 项目 - **包结构**: com.crawler - **功能**: 命令行文章爬虫系统 ### 已实现的包结构 ``` w9/ ├── pom.xml # Maven 配置文件 ├── README.md # 详细项目文档 ├── test.bat # Windows 测试脚本 └── src/ └── main/ └── java/ └── com/ └── crawler/ ├── Main.java # 主程序入口,包含命令循环 ├── model/ │ └── Article.java # 文章数据模型 ├── view/ │ └── ConsoleView.java # 控制台视图(用户界面) ├── command/ │ ├── Command.java # 命令接口 │ ├── HelpCommand.java # help 命令实现 │ ├── ListCommand.java # list 命令实现 │ ├── CrawlCommand.java # crawl 命令实现 │ └── ExitCommand.java # exit 命令实现 └── controller/ └── CommandController.java # 命令控制器 ``` ### 已实现的 4 个命令 1. **help** - 显示所有可用命令的帮助信息 2. **list** - 显示已抓取的文章列表(目前为存根) 3. **crawl** - 开始抓取文章(目前为存根实现,添加3篇示例文章) 4. **exit** - 退出程序 ### 运行方法 #### 方法一:使用 Java 编译器直接运行(已测试) ```bash # 1. 编译项目 cd D:\嘻嘻哈哈\Git\java\w9\src\main\java javac -d ../../../../target/classes -cp . com/crawler/model/Article.java com/crawler/view/ConsoleView.java com/crawler/command/*.java com/crawler/controller/*.java com/crawler/Main.java # 2. 运行程序 java -cp ../../../../target/classes com.crawler.Main ``` #### 方法二:使用 Maven 运行(需要配置 JAVA_HOME) ```bash # 设置 JAVA_HOME set JAVA_HOME=你的Java安装路径 # 编译项目 cd w9 mvn clean compile # 运行程序 mvn exec:java ``` ### 测试结果 程序已成功运行,所有命令都正常工作: ``` ================================================ 欢迎使用文章爬虫系统 ================================================ 可用命令: help - 显示帮助信息 list - 显示已抓取的文章列表 crawl - 开始抓取文章 exit - 退出程序 请输入命令 > help 可用命令: help - 显示帮助信息 list - 显示已抓取的文章列表 crawl - 开始抓取文章 exit - 退出程序 请输入命令 > list 已抓取的文章列表: ---------------------------------------- 暂无已抓取的文章 共 0 篇文章 请输入命令 > crawl 正在开始抓取文章... 抓取完成,共抓取了 3 篇文章 请输入命令 > list 已抓取的文章列表: ---------------------------------------- 1. 示例文章1 URL: https://example.com/article1 ---------------------------------------- 2. 示例文章2 URL: https://example.com/article2 ---------------------------------------- 3. 示例文章3 URL: https://example.com/article3 ---------------------------------------- 共 3 篇文章 请输入命令 > exit 感谢使用,再见! ``` ### 项目架构说明 #### MVC 架构模式 - **Model (模型层)**: `model/Article.java` - 数据模型 - **View (视图层)**: `view/ConsoleView.java` - 用户界面输出 - **Controller (控制层)**: `controller/CommandController.java` - 命令调度 #### 命令模式 - **Command 接口**: 定义命令的基本结构 - **具体命令类**: HelpCommand, ListCommand, CrawlCommand, ExitCommand - **命令控制器**: 管理命令的注册和执行 ### 扩展建议 当前 crawl 命令是存根实现,可以扩展为: 1. **网络爬虫**: 添加 Jsoup 依赖,实现真实的网页爬取 2. **数据存储**: 将抓取的文章保存到文件或数据库 3. **多线程**: 使用 ExecutorService 实现并行爬取 4. **配置管理**: 添加配置文件管理爬取规则 5. **日志系统**: 使用 SLF4J 添加日志记录 ### Maven 依赖配置 如需添加 Jsoup 依赖,可以在 pom.xml 中添加: ```xml org.jsoup jsoup 1.17.2 ``` ### 总结 ✅ Maven 项目结构已创建 ✅ 完整的包结构 (model/view/command/controller) 已实现 ✅ 4 个命令已全部实现并测试通过 ✅ list 命令可展示已抓取的文章 ✅ 命令循环运行正常 ✅ 所有文件已保存在 w9 目录中