|
|
# 🔍 调试清单 - 制品和邮件问题
|
|
|
|
|
|
## 问题现状
|
|
|
- ✅ 流水线通过
|
|
|
- ❌ 没有制品
|
|
|
- ❌ 没有邮件
|
|
|
|
|
|
## 🔧 调试步骤
|
|
|
|
|
|
### 1. 检查构建日志
|
|
|
|
|
|
在 Jenkins 构建日志中搜索以下关键字:
|
|
|
|
|
|
#### 制品相关
|
|
|
```
|
|
|
检查制品文件...
|
|
|
✓ 找到 slms-cli.jar
|
|
|
✓ 找到 slms-gui.jar
|
|
|
✓ 找到 slms-web.jar
|
|
|
✓ 找到 slms-debug.apk
|
|
|
```
|
|
|
|
|
|
**如果显示 "✗ 未找到"**:
|
|
|
- 说明打包失败,但没有报错
|
|
|
- 检查并行打包阶段的日志
|
|
|
|
|
|
#### 邮件相关
|
|
|
```
|
|
|
========== 发送成功通知邮件 ==========
|
|
|
准备发送成功邮件到: 602924803@qq.com, 1280568951@qq.com
|
|
|
✓ 成功通知邮件已发送
|
|
|
```
|
|
|
|
|
|
**如果没有这些日志**:
|
|
|
- 说明没有进入 `post { success }` 部分
|
|
|
- 检查 `currentBuild.result` 的值
|
|
|
|
|
|
### 2. 检查并行打包阶段
|
|
|
|
|
|
查看每个打包 stage 的输出:
|
|
|
|
|
|
#### CLI 打包
|
|
|
```
|
|
|
========== 打包 CLI 应用 (JAR) ==========
|
|
|
mvn clean package -Pcli -DskipTests
|
|
|
✓ 找到 CLI shaded JAR
|
|
|
✓ CLI JAR 打包完成: slms-cli.jar
|
|
|
```
|
|
|
|
|
|
#### GUI 打包
|
|
|
```
|
|
|
========== 打包 GUI 应用 (JAR) ==========
|
|
|
mvn clean package -Pgui -DskipTests
|
|
|
✓ 找到 GUI shaded JAR
|
|
|
✓ GUI JAR 打包完成: slms-gui.jar
|
|
|
```
|
|
|
|
|
|
#### Web 打包
|
|
|
```
|
|
|
========== 打包 Web 应用 (JAR) ==========
|
|
|
mvn clean package -Pweb -DskipTests
|
|
|
✓ Web JAR 打包完成: slms-web.jar
|
|
|
```
|
|
|
|
|
|
#### Android 打包
|
|
|
```
|
|
|
========== 打包 Android 应用 (APK) ==========
|
|
|
call gradlew.bat :android:assembleDebug
|
|
|
✓ Android APK 打包完成: slms-debug.apk
|
|
|
```
|
|
|
|
|
|
### 3. 检查归档阶段
|
|
|
|
|
|
```
|
|
|
========== 归档构建制品 ==========
|
|
|
检查制品文件...
|
|
|
✓ 找到 slms-cli.jar
|
|
|
✓ 找到 slms-gui.jar
|
|
|
✓ 找到 slms-web.jar
|
|
|
✓ 找到 slms-debug.apk
|
|
|
✓ 制品归档完成
|
|
|
```
|
|
|
|
|
|
### 4. 检查 always 部分
|
|
|
|
|
|
```
|
|
|
========== 构建完成,检查状态 ==========
|
|
|
当前构建结果: SUCCESS (或 null)
|
|
|
当前构建状态: SUCCESS
|
|
|
✅ 构建成功,应该发送成功邮件
|
|
|
========== 检查制品文件 ==========
|
|
|
✓ slms-cli.jar 存在
|
|
|
✓ slms-gui.jar 存在
|
|
|
✓ slms-web.jar 存在
|
|
|
✓ slms-debug.apk 存在
|
|
|
```
|
|
|
|
|
|
## 🐛 常见问题
|
|
|
|
|
|
### 问题 1: 制品文件不存在
|
|
|
|
|
|
**可能原因**:
|
|
|
1. 并行打包时,每个 stage 在不同的工作目录
|
|
|
2. Maven profile 没有生成正确的文件名
|
|
|
3. 文件复制失败
|
|
|
|
|
|
**解决方法**:
|
|
|
```groovy
|
|
|
// 在每个打包 stage 后添加
|
|
|
bat 'dir target' // 查看 target 目录内容
|
|
|
```
|
|
|
|
|
|
### 问题 2: 没有进入 post success
|
|
|
|
|
|
**可能原因**:
|
|
|
1. `currentBuild.result` 不是 `SUCCESS` 或 `null`
|
|
|
2. 某个 stage 设置了 `currentBuild.result = 'UNSTABLE'`
|
|
|
|
|
|
**检查方法**:
|
|
|
在 always 部分查看:
|
|
|
```
|
|
|
当前构建结果: UNSTABLE // 如果是这个,会进入 unstable 而不是 success
|
|
|
```
|
|
|
|
|
|
### 问题 3: 邮件发送失败
|
|
|
|
|
|
**可能原因**:
|
|
|
1. Jenkins 邮件配置不正确
|
|
|
2. SMTP 服务器连接失败
|
|
|
3. emailext 插件未安装
|
|
|
|
|
|
**检查方法**:
|
|
|
1. Jenkins → 系统管理 → 系统配置 → 邮件通知
|
|
|
2. 测试邮件配置
|
|
|
3. 查看构建日志中的错误信息
|
|
|
|
|
|
## 📋 验证清单
|
|
|
|
|
|
下次构建后,按顺序检查:
|
|
|
|
|
|
- [ ] **Stage 6.1.1**: CLI JAR 打包成功
|
|
|
- [ ] **Stage 6.1.2**: GUI JAR 打包成功
|
|
|
- [ ] **Stage 6.1.3**: Web JAR 打包成功
|
|
|
- [ ] **Stage 6.1.4**: Android APK 打包成功
|
|
|
- [ ] **Stage 7**: 归档制品成功,4 个文件都找到
|
|
|
- [ ] **Stage 8**: 推送到头歌成功
|
|
|
- [ ] **Always**: 显示 "✅ 构建成功,应该发送成功邮件"
|
|
|
- [ ] **Always**: 4 个制品文件都存在
|
|
|
- [ ] **Post Success**: 进入成功邮件发送
|
|
|
- [ ] **Post Success**: 显示 "✓ 成功通知邮件已发送"
|
|
|
- [ ] **邮箱**: 收到邮件
|
|
|
|
|
|
## 🔍 关键日志位置
|
|
|
|
|
|
### 制品检查
|
|
|
```
|
|
|
Stage: 7. 归档制品
|
|
|
→ 检查制品文件...
|
|
|
→ ✓ 找到 slms-cli.jar
|
|
|
```
|
|
|
|
|
|
### 邮件发送
|
|
|
```
|
|
|
Post Actions: success
|
|
|
→ ========== 发送成功通知邮件 ==========
|
|
|
→ 准备发送成功邮件到: ...
|
|
|
→ ✓ 成功通知邮件已发送
|
|
|
```
|
|
|
|
|
|
### 构建状态
|
|
|
```
|
|
|
Post Actions: always
|
|
|
→ 当前构建结果: SUCCESS
|
|
|
→ ✅ 构建成功,应该发送成功邮件
|
|
|
```
|
|
|
|
|
|
## 🚀 下一步
|
|
|
|
|
|
1. **提交更改**:
|
|
|
```bash
|
|
|
git add Jenkinsfile docs/DEBUG_CHECKLIST.md
|
|
|
git commit -m "debug: 添加制品和邮件调试信息"
|
|
|
git push
|
|
|
```
|
|
|
|
|
|
2. **触发构建**:推送后自动触发
|
|
|
|
|
|
3. **查看日志**:
|
|
|
- 搜索 "检查制品文件"
|
|
|
- 搜索 "发送成功通知邮件"
|
|
|
- 搜索 "当前构建结果"
|
|
|
|
|
|
4. **根据日志判断**:
|
|
|
- 如果制品不存在 → 检查打包阶段
|
|
|
- 如果没有邮件日志 → 检查 post 部分
|
|
|
- 如果有错误信息 → 根据错误修复
|
|
|
|
|
|
## 📝 预期输出
|
|
|
|
|
|
**成功的构建应该显示**:
|
|
|
```
|
|
|
✓ CLI JAR 打包完成: slms-cli.jar
|
|
|
✓ GUI JAR 打包完成: slms-gui.jar
|
|
|
✓ Web JAR 打包完成: slms-web.jar
|
|
|
✓ Android APK 打包完成: slms-debug.apk
|
|
|
✓ 找到 slms-cli.jar
|
|
|
✓ 找到 slms-gui.jar
|
|
|
✓ 找到 slms-web.jar
|
|
|
✓ 找到 slms-debug.apk
|
|
|
✓ 制品归档完成
|
|
|
✅ 构建成功,应该发送成功邮件
|
|
|
✓ slms-cli.jar 存在
|
|
|
✓ slms-gui.jar 存在
|
|
|
✓ slms-web.jar 存在
|
|
|
✓ slms-debug.apk 存在
|
|
|
========== 发送成功通知邮件 ==========
|
|
|
✓ 成功通知邮件已发送到: 602924803@qq.com, 1280568951@qq.com
|
|
|
```
|