|
|
# 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 开发团队
|