构建与部署常见问题
这里汇总后端构建和部署过程中最常碰到的问题,直接找相关场景。
构建相关
Q: 怎么打包生产环境?
- 打开 IDEA 右侧 Gradle 工具栏
- 展开对应模块 → Tasks → build
- 双击 bootJar 打包可执行 JAR(跳过测试)
- 双击 build 执行完整构建(含测试)
构建产物在 build/libs/ 目录下。
Q: 构建失败,报 Could not resolve 或依赖下载失败?
原因:可能是 Gradle 缓存损坏、网络问题或依赖配置不正确。
解决:
- 刷新依赖:点击 IDEA 右侧 Gradle 工具栏的 刷新按钮(Reload All Gradle Projects)
- 清理缓存:在 IDEA 中打开 File → Invalidate Caches → Invalidate and Restart,勾选 "Clear file system cache and Local History"
- 检查网络:确保能访问 Maven 中央仓库,如网络受限可换一个网络环境重试
- 检查 JDK 版本:确认 IDEA 中 Gradle JVM 设置为 JDK 25(File → Settings → Build、Execution、Deployment → Build Tools → Gradle)
Q: 构建成功但启动报错 ClassNotFoundException 或 NoClassDefFoundError?
原因:构建缓存不一致或依赖未正确打包。
解决:
- 清理构建产物:在 IDEA 的 Gradle 面板中执行
clean任务(或使用菜单 Build → Clean Project) - 重新构建:执行 Build → Rebuild Project
- 刷新依赖:点击右侧 Gradle 工具栏的 刷新按钮
部署相关
Q: 应用启动报 IllegalAccessError?
JDK 25 默认限制原生 API 访问,需要在启动配置中添加 JVM 参数:
- 打开 Run → Edit Configurations...
- 在 VM options 中添加:
--enable-native-access=ALL-UNNAMED --sun-misc-unsafe-memory-access=allowTIP
项目已通过 build.gradle.kts 自动注入上述参数到 IDEA Run Configuration,通常无需手动配置。
Q: 怎么回滚到上一个版本?
通过 OAK 平台进行版本回滚:
- 进入项目管理页面
- 选择构建的历史版本
- 选择要回滚的版本
- 点击 "回滚"
WARNING
- 回滚前确认目标版本稳定
- 数据库变更需单独处理
- 回滚后验证服务状态
生产环境相关
Q: 生产环境配置不生效?
原因:Nacos 配置中心的配置未正确加载或未推送到目标环境。
解决:
- 登录 Nacos 控制台,确认对应环境(namespace)下存在对应 dataId 的配置
- 确认
application.yml/bootstrap.yml中的spring.config.import配置正确 - 确认部署环境的 namespace 与 Nacos 控制台一致
- 在 OAK 平台重新触发部署,确保最新配置被加载
- 启动日志中搜索
Loading nacos data确认配置已加载
Q: Nacos 服务未注册到生产环境?
确认 application-prod.yml 中的 Nacos 配置:
yaml
spring:
cloud:
nacos:
discovery:
namespace: <生产环境-namespace>
group: <生产环境-group>