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

使用Gradle构建Spring Boot+Angular项目War包时排除指定目录

解决Gradle打包War时排除webapp下src和node_modules的问题

我来帮你搞定这个困扰!你遇到的是Gradle War插件默认会把src/main/webapp下所有内容都打包进War包的情况,咱们只需要在build.gradle里给打包任务加个排除规则就行,具体有两种常用方式:

方式一:配置基础war任务

如果你的项目是用标准的Gradle War插件打包,直接在build.gradle里添加以下配置:

war {
    // 排除webapp目录下的src文件夹及其所有子内容
    exclude 'src/**'
    // 排除webapp目录下的node_modules文件夹及其所有子内容
    exclude 'node_modules/**'
}

这个配置会明确告诉Gradle,打包时忽略这两个目录的所有文件和子目录,完全不影响你已经输出到src/main/resources/static的Angular构建产物——因为resources下的内容本来就会被Gradle自动打包到War的WEB-INF/classes/static路径下,前端运行需要的资源一个都不会少。

方式二:配置Spring Boot的bootWar任务

如果你的项目用了Spring Boot插件,并且是通过bootWar生成可执行War包,那就把配置加到bootWar任务里:

bootWar {
    exclude 'src/**'
    exclude 'node_modules/**'
}

验证配置是否生效

配置完成后,运行对应的打包命令:

  • 标准War:./gradlew war
  • 可执行War:./gradlew bootWar
    打包完成后,找到生成的War包(一般在build/libs目录下),解压后检查WEB-INF/webapp目录,你会发现src和node_modules已经被排除在外了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 09:11:54