You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

3.0 KiB

CLI 模块 - Gradle 构建说明

概述

CLI 模块已完全集成到 Gradle 构建系统中,支持自动化构建和打包。

构建配置

依赖关系

  • Core 模块: 提供核心业务逻辑
  • SLF4J: 日志框架
  • Java 21: 运行时环境

Gradle 任务

1. 标准构建

./gradlew :cli:build

编译源代码并运行测试。

2. 打包可执行 JAR

./gradlew :cli:fatJar

生成包含所有依赖的可执行 JAR 文件:

  • 输出位置: cli/build/libs/cli-1.0.0-all.jar
  • 包含所有运行时依赖
  • 可直接运行

3. 清理构建

./gradlew :cli:clean

4. 完整重新构建

./gradlew :cli:clean :cli:fatJar

运行方式

方式 1: 使用批处理脚本(推荐)

run-cli.bat

方式 2: 直接运行 JAR

java -Dfile.encoding=UTF-8 -jar cli/build/libs/cli-1.0.0-all.jar

方式 3: 使用 Gradle 运行

./gradlew :cli:run

功能特性

基础功能

  1. 添加图书
  2. 查看所有图书
  3. 搜索图书
  4. 借阅图书
  5. 归还图书
  6. 查看借阅记录
  7. 查看 UML 图

AI 功能(开发中)

  • /ai <问题> - AI 助手对话
  • /search <查询> - 智能搜索
  • /recommend - 个性化推荐
  • /summary <图书ID> - 生成图书摘要
  • /aihelp - AI 功能帮助

项目结构

cli/
├── build.gradle          # Gradle 构建配置
├── src/
│   └── main/
│       └── java/
│           └── com/smartlibrary/cli/
│               ├── CLIApplication.java      # 主入口
│               ├── CommandHandler.java      # 命令处理
│               └── AICommandHandler.java    # AI 命令处理
└── build/
    └── libs/
        ├── cli-1.0.0.jar         # 标准 JAR
        └── cli-1.0.0-all.jar     # 可执行 Fat JAR

开发说明

添加新依赖

cli/build.gradle 中添加:

dependencies {
    implementation 'group:artifact:version'
}

修改主类

cli/build.gradle 中修改:

application {
    mainClass = 'com.smartlibrary.cli.YourMainClass'
}

调试模式

java -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005 -jar cli/build/libs/cli-1.0.0-all.jar

注意事项

  1. 编码问题: Windows 环境下建议使用 UTF-8 编码
  2. Java 版本: 需要 Java 21 或更高版本
  3. AI 功能: 当前为占位实现,需要集成实际的 AI 服务
  4. 数据库: 使用 SQLite数据文件位于 library.db

故障排除

问题: 找不到主类

解决: 确保使用 fatJar 任务构建,而不是标准的 jar 任务

问题: 中文乱码

解决:

  • 使用 chcp 65001 设置控制台编码
  • 添加 JVM 参数 -Dfile.encoding=UTF-8

问题: 依赖冲突

解决: 运行 ./gradlew :cli:dependencies 查看依赖树

相关文档