You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot+Angular全栈项目Heroku部署失败求助

问题1:启动时报错找不到主类

解决办法:

  • 核对Spring Boot主类的包路径与pom.xml中spring-boot-maven-plugin的mainClass配置是否完全一致。例如主类为com.example.demo.Application,插件需配置:
<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <mainClass>com.example.demo.Application</mainClass>
    </configuration>
    <executions>
        <execution>
            <goals>
                <goal>repackage</goal>
            </goals>
        </execution>
    </executions>
</plugin>
  • 检查项目根目录的Procfile,确保启动命令指向正确的jar包,示例:
web: java -jar target/your-project-name-0.0.1-SNAPSHOT.jar
  • 确保maven打包时执行spring-boot:repackage目标,Heroku默认执行mvn clean install,需在pom中绑定该目标的执行逻辑。

问题2:frontend-maven-plugin安装Node/npm权限错误

解决办法:

  • 修改插件配置,将Node/npm安装目录指定为项目本地目录,避开系统级目录权限限制:
<plugin>
    <groupId>com.github.eirslett</groupId>
    <artifactId>frontend-maven-plugin</artifactId>
    <version>1.12.0</version>
    <configuration>
        <installDirectory>./</installDirectory>
        <nodeVersion>v18.17.0</nodeVersion>
        <npmVersion>9.6.7</npmVersion>
    </configuration>
    <executions>
        <!-- 保留你的npm install、ng build等执行步骤 -->
    </executions>
</plugin>
  • 在项目根目录创建system.properties文件,指定Java运行时版本(匹配Spring Boot支持版本):
java.runtime.version=17

同时在插件配置中添加参数,避免使用高权限操作:

<plugin>
    <groupId>com.github.eirslett</groupId>
    <artifactId>frontend-maven-plugin</artifactId>
    <configuration>
        <arguments>install --no-audit</arguments>
    </configuration>
</plugin>
  • 确认Angular项目的package.json位置(如src/main/frontend),并在插件配置中指定工作目录:
<configuration>
    <workingDirectory>src/main/frontend</workingDirectory>
</configuration>

建议先在本地执行mvn clean install模拟Heroku构建流程,提前排查是否存在同类问题。

内容的提问来源于stack exchange,提问作者Someone

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 21:57:10