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.
5.0 KiB
5.0 KiB
🔍 调试清单 - 制品和邮件问题
问题现状
- ✅ 流水线通过
- ❌ 没有制品
- ❌ 没有邮件
🔧 调试步骤
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: 制品文件不存在
可能原因:
- 并行打包时,每个 stage 在不同的工作目录
- Maven profile 没有生成正确的文件名
- 文件复制失败
解决方法:
// 在每个打包 stage 后添加
bat 'dir target' // 查看 target 目录内容
问题 2: 没有进入 post success
可能原因:
currentBuild.result不是SUCCESS或null- 某个 stage 设置了
currentBuild.result = 'UNSTABLE'
检查方法: 在 always 部分查看:
当前构建结果: UNSTABLE // 如果是这个,会进入 unstable 而不是 success
问题 3: 邮件发送失败
可能原因:
- Jenkins 邮件配置不正确
- SMTP 服务器连接失败
- emailext 插件未安装
检查方法:
- Jenkins → 系统管理 → 系统配置 → 邮件通知
- 测试邮件配置
- 查看构建日志中的错误信息
📋 验证清单
下次构建后,按顺序检查:
- 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
→ ✅ 构建成功,应该发送成功邮件
🚀 下一步
- 提交更改:
git add Jenkinsfile docs/DEBUG_CHECKLIST.md
git commit -m "debug: 添加制品和邮件调试信息"
git push
-
触发构建:推送后自动触发
-
查看日志:
- 搜索 "检查制品文件"
- 搜索 "发送成功通知邮件"
- 搜索 "当前构建结果"
-
根据日志判断:
- 如果制品不存在 → 检查打包阶段
- 如果没有邮件日志 → 检查 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