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

如何将Spring Boot与Angular应用打包为单个war文件部署

问题1:构建报错解决方案

你遇到的报错由两个问题导致:

1. 子模块名称不匹配

你在settings.gradle里定义的子模块名称是:angularProject,但报错中显示主项目在查找:frontendProject,请统一两处的模块名称:

  • 要么将主项目build.gradle中的依赖改为implementation(project(':angularProject'))(注意你原有配置还少了一个右括号,记得补上)
  • 要么将settings.gradle和依赖配置中的模块名统一改为:frontendProject

2. Java版本不兼容

Angular子模块当前的编译版本为Java 15,和主项目使用的Java 8不匹配,在Angular项目的build.gradle中添加如下配置统一版本即可:

java {
    sourceCompatibility = JavaVersion.VERSION_1_8
    targetCompatibility = JavaVersion.VERSION_1_8
}

问题2:Angular静态资源自动同步解决方案

修复完上述报错后,你当前的配置其实已经可以让Spring Boot正常识别Angular静态资源:Angular子模块构建出的jar包中static目录下的产物会自动加入主项目的classpath,Spring Boot启动后可直接访问,不需要手动同步到主项目的resources/static目录。
如果你确实有需求将构建产物直接同步到主项目的resources/static目录,在主项目的build.gradle中添加如下配置即可:

// 新增复制Angular构建产物的任务
task copyAngularStatic(type: Copy) {
    // 依赖Angular子模块的构建任务,确保每次复制都是最新产物
    dependsOn ':angularProject:npm_run_build'
    // 替换为你Angular项目构建后的实际产物路径
    from '../angularProject/dist/projectName'
    // 目标路径为主项目的静态资源目录
    into 'src/main/resources/static'
}

// 绑定到主项目的资源处理流程,构建时自动执行
processResources.dependsOn copyAngularStatic

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 10:54:04