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/SLMS_MultiAPP_Package_Tools.md

437 lines
8.4 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# SLMS 四端应用打包工具配置指南
**Smart Library Management System - Multi-Application Package Tools Guide**
本文档提供 SLMS 四端应用CLI、GUI、Web、Android打包所需工具的详细安装步骤、配置方法和验证流程。
**四端应用说明**:
- **CLI 应用**: 命令行界面,打包为 JAR
- **GUI 应用**: 图形界面JavaFX打包为 JAR/EXE/MSI
- **Web 应用**: Spring Boot Web打包为 WAR
- **Android 应用**: 移动端,打包为 APK
**相关文档**:
- `SLMS_MultiAPP_Package.xml`: Maven 打包配置CLI/GUI/Web
- `ATM流水线.md`: CI/CD 流水线配置文档
- `Jenkinsfile`: Jenkins 自动化构建脚本
---
## 一、CLI 应用打包 (JAR)
### 所需工具
- ✅ JDK 21
- ✅ Maven 3.9+
### 验证命令
```bash
java -version
mvn -version
```
### 测试打包
```bash
mvn clean package -P cli -DskipTests
```
**预期输出**: `target/slms-cli.jar`
---
## 二、GUI 应用打包 (EXE/MSI)
### 所需工具
1. **JDK 21** (包含 jpackage)
2. **WiX Toolset 3.11+** (用于生成 MSI)
### 2.1 安装 WiX Toolset
#### 下载
- 官网: https://wixtoolset.org/releases/
- 推荐版本: WiX Toolset 3.11.2
- 下载文件: `wix311.exe`
#### 安装步骤
1. 运行 `wix311.exe`
2. 选择安装路径: `C:\Program Files (x86)\WiX Toolset v3.11`
3. 完成安装
#### 配置环境变量
```bash
# 添加到系统 PATH
C:\Program Files (x86)\WiX Toolset v3.11\bin
```
**重启命令行窗口**使环境变量生效。
### 2.2 验证安装
```bash
# 验证 jpackage
jpackage --version
# 验证 WiX
candle.exe -?
light.exe -?
```
### 2.3 测试打包
#### 打包为 EXE
```bash
# 先打包 JAR
mvn clean package -P gui -DskipTests
# 使用 jpackage 打包为 EXE
jpackage --input target ^
--name SLMS-GUI ^
--main-jar slms-gui.jar ^
--type exe ^
--win-console ^
--dest target
```
**预期输出**: `target/SLMS-GUI.exe`
#### 打包为 MSI
```bash
jpackage --input target ^
--name SLMS-GUI ^
--main-jar slms-gui.jar ^
--type msi ^
--win-console ^
--dest target
```
**预期输出**: `target/SLMS-GUI.msi`
---
## 三、Web 应用打包 (WAR)
### 所需工具
- ✅ JDK 21
- ✅ Maven 3.9+
- ✅ Spring Boot (已在 pom.xml 中配置)
### 验证命令
```bash
mvn -version
```
### 测试打包
```bash
mvn clean package -P web -DskipTests
```
**预期输出**: `target/slms-web.war`
---
## 四、Android 应用打包 (APK)
### 所需工具
1. **JDK 21**
2. **Android SDK**
3. **Gradle 8.5+**
### 4.1 安装 Android SDK
#### 方法一:通过 Android Studio
1. 下载 Android Studio: https://developer.android.com/studio
2. 安装并打开 Android Studio
3. 通过 SDK Manager 安装:
- Android SDK Platform 34
- Android SDK Build-Tools 34.0.0
- Android SDK Command-line Tools
#### 方法二:命令行工具
1. 下载 Command Line Tools: https://developer.android.com/studio#command-tools
2. 解压到: `D:\development\Android\cmdline-tools`
3. 使用 sdkmanager 安装组件:
```bash
sdkmanager "platform-tools" "platforms;android-34" "build-tools;34.0.0"
```
### 4.2 配置环境变量
```bash
# 设置 ANDROID_HOME
ANDROID_HOME=D:\development\Android
# 添加到 PATH
%ANDROID_HOME%\platform-tools
%ANDROID_HOME%\cmdline-tools\latest\bin
```
### 4.3 生成签名密钥
```bash
# 创建密钥存储目录
mkdir android\keystore
# 生成签名密钥
keytool -genkey -v ^
-keystore android\keystore\slms-release.jks ^
-keyalg RSA ^
-keysize 2048 ^
-validity 10000 ^
-alias slms-key
```
**记录密钥信息**:
- Keystore 密码: `your-store-password`
- Key 别名: `slms-key`
- Key 密码: `your-key-password`
### 4.4 配置 Gradle 签名
编辑 `android/build.gradle`:
```gradle
android {
signingConfigs {
release {
storeFile file("keystore/slms-release.jks")
storePassword "your-store-password"
keyAlias "slms-key"
keyPassword "your-key-password"
}
}
buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled false
}
}
}
```
### 4.5 验证安装
```bash
# 验证 Android SDK
echo %ANDROID_HOME%
# 验证 Gradle
cd android
gradlew --version
```
### 4.6 测试打包
```bash
cd android
# 打包 Debug 版本
gradlew assembleDebug
# 打包 Release 版本(需要签名)
gradlew assembleRelease
```
**预期输出**:
- Debug: `android/build/outputs/apk/debug/android-debug.apk`
- Release: `android/build/outputs/apk/release/android-release.apk`
---
## 五、Jenkins 环境配置
### 5.1 配置全局环境变量
1. 进入 Jenkins: `http://localhost:8084`
2. `Manage Jenkins``Configure System`
3. 找到 `Global properties`
4. 勾选 `Environment variables`
5. 添加以下变量:
```
JAVA_HOME = E:\2025-2026\GitAIOps\jdk
ANDROID_HOME = D:\development\Android
WIXSHARP_WIXDIR = C:\Program Files (x86)\WiX Toolset v3.11\bin
```
### 5.2 创建验证 Pipeline
在 Jenkins 中创建测试任务验证所有工具:
```groovy
pipeline {
agent any
stages {
stage('验证打包工具') {
steps {
bat '''
echo ========== 验证 Java ==========
java -version
javac -version
echo ========== 验证 Maven ==========
mvn -version
echo ========== 验证 jpackage ==========
jpackage --version
echo ========== 验证 WiX Toolset ==========
candle.exe -?
light.exe -?
echo ========== 验证 Gradle ==========
cd android
gradlew --version
cd ..
echo ========== 验证 Android SDK ==========
echo %ANDROID_HOME%
dir "%ANDROID_HOME%"
echo ========== 所有工具验证完成 ==========
'''
}
}
}
}
```
---
## 六、完整验证清单
### 验证步骤
- [ ] **JDK 21 已安装**
```bash
java -version
# 输出: openjdk version "21.x.x"
```
- [ ] **Maven 已安装**
```bash
mvn -version
# 输出: Apache Maven 3.9.x
```
- [ ] **jpackage 可用**
```bash
jpackage --version
# 输出: 21.x.x
```
- [ ] **WiX Toolset 已安装**
```bash
candle.exe -?
light.exe -?
# 输出: WiX 工具帮助信息
```
- [ ] **Android SDK 已配置**
```bash
echo %ANDROID_HOME%
# 输出: D:\development\Android
```
- [ ] **Gradle 可用**
```bash
cd android
gradlew --version
# 输出: Gradle 8.5
```
- [ ] **Android 签名密钥已生成**
```bash
dir android\keystore\slms-release.jks
# 文件存在
```
- [ ] **Jenkins 环境变量已配置**
- JAVA_HOME
- ANDROID_HOME
- WIXSHARP_WIXDIR
- [ ] **本地测试打包成功**
- CLI JAR: ✅
- GUI JAR: ✅
- GUI EXE: ✅
- Web WAR: ✅
- Android APK: ✅
---
## 七、常见问题
### 问题 1: jpackage 命令找不到
**原因**: JDK 版本低于 14 或 PATH 未配置
**解决**:
```bash
# 确认 JDK 版本
java -version
# 确认 jpackage 路径
where jpackage
# 如果找不到,添加到 PATH
%JAVA_HOME%\bin
```
### 问题 2: WiX 工具找不到
**原因**: WiX 未安装或 PATH 未配置
**解决**:
```bash
# 检查安装路径
dir "C:\Program Files (x86)\WiX Toolset v3.11\bin"
# 添加到 PATH
C:\Program Files (x86)\WiX Toolset v3.11\bin
```
### 问题 3: Android SDK 找不到
**原因**: ANDROID_HOME 未设置
**解决**:
```bash
# 设置环境变量
setx ANDROID_HOME "D:\development\Android"
# 重启命令行窗口
```
### 问题 4: Gradle 构建失败
**原因**: Gradle 版本不兼容或依赖下载失败
**解决**:
```bash
# 清理 Gradle 缓存
cd android
gradlew clean
# 重新构建
gradlew assembleDebug --refresh-dependencies
```
---
## 八、下一步
完成所有工具安装和验证后:
1. ✅ 更新 `pom.xml` 添加 profiles 配置
2. ✅ 配置 `android/build.gradle` 签名信息
3. ✅ 提交 `Jenkinsfile` 到仓库
4. ✅ 推送到 Gitea 触发 Jenkins 构建
5. ✅ 查看 Jenkins 构建日志验证四端打包
---
**文档版本**: 1.0
**最后更新**: 2025-11-20
**维护者**: SLMS 开发团队