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.
4.6 KiB
4.6 KiB
📚 SLMS 应用使用说明
🎯 修复内容
问题
之前的打包方式只是简单复制同一个 JAR 文件,没有指定正确的主类入口,导致:
slms-cli.jar无法运行 CLI 应用slms-gui.jar无法运行 GUI 应用slms-web.jar无法运行 Web 应用
解决方案
- 修改 pom.xml - 为每个 profile 添加 maven-shade-plugin 或 spring-boot-maven-plugin
- 修改 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 构建流程
- 编译:
mvn clean package -DskipTests(生成基础 JAR) - CLI 打包:
mvn clean package -Pcli -DskipTests→slms-cli.jar - GUI 打包:
mvn clean package -Pgui -DskipTests→slms-gui.jar - Web 打包:
mvn clean package -Pweb -DskipTests→slms-web.jar - Android 打包:
gradlew :android:assembleDebug→slms-debug.apk - 归档制品: 所有 JAR/APK 文件
- 推送到头歌: 制品推送到 release 分支
🎉 总结
现在每个应用都有正确的主类入口和完整的依赖,可以独立运行:
- ✅ slms-cli.jar - 命令行应用
- ✅ slms-gui.jar - 图形界面应用
- ✅ slms-web.jar - Web 应用
- ✅ slms-debug.apk - Android 应用