# 🔍 调试清单 - 制品和邮件问题 ## 问题现状 - ✅ 流水线通过 - ❌ 没有制品 - ❌ 没有邮件 ## 🔧 调试步骤 ### 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 ```