Spring Boot项目通过GitHub部署Heroku遇H14及H10错误求助
问题解决步骤
问题回顾
- 本地及CLI部署项目正常,GitHub自动部署到Heroku后报错
- 初始报错:
at=error code=H14 desc="No web processes running",执行heroku ps:scale web=1 -a <你的应用名>提示找不到进程类型 - 添加Java/JVM构建包后scale命令成功,但出现
at=error code=H10 desc="App crashed"
解决H14(无Web进程运行)问题
添加
Procfile文件到项目根目录
Heroku需要通过这个文件明确Web进程的启动命令,文件内容示例:web: java -jar target/bugtracker-<版本号>.jar替换成你项目实际生成的可执行Jar包路径(Maven打包默认在
target/下,Gradle在build/libs/下)。确认构建配置
确保项目打包生成可执行Jar:比如Spring Boot项目要在pom.xml中配置spring-boot-maven-plugin;普通Java项目用maven-assembly-plugin打包成包含所有依赖的可执行Jar。
解决H10(应用崩溃)问题
查看详细崩溃日志
执行命令获取实时日志定位原因:heroku logs --tail -a <你的应用名>常见崩溃原因及处理:
- 端口硬编码:项目不能固定端口,必须读取Heroku分配的
PORT环境变量,示例代码:int port = Integer.parseInt(System.getenv().getOrDefault("PORT", "8080")); // 使用该端口启动服务 - 依赖缺失:检查打包是否包含所有依赖,确保生成的是包含依赖的fat jar。
- 构建包冲突:移除多余的JVM构建包,仅保留官方
heroku/java构建包,执行命令:heroku buildpacks:set heroku/java -a <你的应用名>
- 端口硬编码:项目不能固定端口,必须读取Heroku分配的
重新部署
修改后提交代码到GitHub触发自动部署,或用CLI手动部署:git push heroku main
内容的提问来源于stack exchange,提问作者jgiddings
相关产品推荐
相关产品推荐

