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.
slms/docs/APP_USAGE.md

4.6 KiB

📚 SLMS 应用使用说明

🎯 修复内容

问题

之前的打包方式只是简单复制同一个 JAR 文件,没有指定正确的主类入口,导致:

  • slms-cli.jar 无法运行 CLI 应用
  • slms-gui.jar 无法运行 GUI 应用
  • slms-web.jar 无法运行 Web 应用

解决方案

  1. 修改 pom.xml - 为每个 profile 添加 maven-shade-plugin 或 spring-boot-maven-plugin
  2. 修改 Jenkinsfile - 使用正确的 Maven profile 打包

📦 三个应用的打包方式

1. CLI 应用 (slms-cli.jar)

# 打包命令
mvn clean package -Pcli -DskipTests

# 运行方式
java -jar slms-cli.jar

特点:

  • 使用 maven-shade-plugin 打包所有依赖
  • 主类: com.smartlibrary.cli.CLIApplication
  • 命令行文本界面

2. GUI 应用 (slms-gui.jar)

# 打包命令
mvn clean package -Pgui -DskipTests

# 运行方式
java -jar slms-gui.jar
# 或双击运行

特点:

  • 使用 maven-shade-plugin 打包所有依赖(包括 JavaFX
  • 主类: com.smartlibrary.gui.GUIApplication
  • JavaFX 图形界面

3. Web 应用 (slms-web.jar)

# 打包命令
mvn clean package -Pweb -DskipTests

# 运行方式
java -jar slms-web.jar
# 然后访问 http://localhost:8080

特点:

  • 使用 spring-boot-maven-plugin 打包为可执行 JAR
  • 主类: com.smartlibrary.web.WebApplication
  • Spring Boot Web 应用,内嵌 Tomcat

🚀 使用指南

CLI 应用功能

===== 主菜单 =====
1. 添加图书
2. 查看所有图书
3. 搜索图书
4. 借阅图书
5. 归还图书
6. 查看所有借阅记录
0. 退出系统

GUI 应用功能

  • 图书管理 选项卡

    • 添加图书
    • 搜索图书
    • 查看图书列表(表格显示)
  • 借阅管理 选项卡

    • 借阅图书
    • 归还图书
    • 查看借阅记录(表格显示)

Web 应用功能

  • 浏览器访问 http://localhost:8080
  • 功能与 GUI 类似,但通过网页操作
  • 支持多用户同时访问

🔧 技术细节

Maven Shade Plugin

用于 CLI 和 GUI 应用,将所有依赖打包到一个 JAR 中:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>3.5.0</version>
    <configuration>
        <transformers>
            <transformer implementation="...ManifestResourceTransformer">
                <mainClass>com.smartlibrary.cli.CLIApplication</mainClass>
            </transformer>
        </transformers>
    </configuration>
</plugin>

Spring Boot Maven Plugin

用于 Web 应用,打包为可执行的 Spring Boot JAR

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <mainClass>com.smartlibrary.web.WebApplication</mainClass>
    </configuration>
</plugin>

📋 验证清单

构建完成后,验证每个应用:

CLI 应用

java -jar slms-cli.jar
# 应该显示: ===== 智能图书管理系统 - 命令行界面 =====

GUI 应用

java -jar slms-gui.jar
# 应该打开 JavaFX 窗口,标题: 智能图书管理系统 - 图形界面

Web 应用

java -jar slms-web.jar
# 应该显示: Tomcat started on port(s): 8080
# 访问 http://localhost:8080 应该看到网页界面

🐛 常见问题

问题 1: GUI 应用报错 "JavaFX runtime components are missing"

原因: JavaFX 依赖没有正确打包

解决: 确保使用 -Pgui profile 打包maven-shade-plugin 会包含 JavaFX

问题 2: CLI/GUI 应用报错 "no main manifest attribute"

原因: JAR 的 MANIFEST.MF 中没有指定主类

解决: 使用正确的 Maven profile 打包shade plugin 会自动添加主类

问题 3: Web 应用无法启动

原因: 可能是端口 8080 被占用

解决:

# 指定其他端口
java -jar slms-web.jar --server.port=8081

📝 Jenkins 构建流程

  1. 编译: mvn clean package -DskipTests (生成基础 JAR)
  2. CLI 打包: mvn clean package -Pcli -DskipTestsslms-cli.jar
  3. GUI 打包: mvn clean package -Pgui -DskipTestsslms-gui.jar
  4. Web 打包: mvn clean package -Pweb -DskipTestsslms-web.jar
  5. Android 打包: gradlew :android:assembleDebugslms-debug.apk
  6. 归档制品: 所有 JAR/APK 文件
  7. 推送到头歌: 制品推送到 release 分支

🎉 总结

现在每个应用都有正确的主类入口和完整的依赖,可以独立运行:

  • slms-cli.jar - 命令行应用
  • slms-gui.jar - 图形界面应用
  • slms-web.jar - Web 应用
  • slms-debug.apk - Android 应用