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

Spring Boot打包War文件时如何排除指定依赖不打入最终包?

Spring Boot打War包排除指定依赖方案

现有配置有效性说明

你贴出的依赖配置已经添加了<scope>provided</scope>和<optional>true</optional>,默认已经可以满足打包排除需求:

  • <scope>provided</scope>:标记该依赖仅在编译、测试阶段生效,运行时由服务环境提供,Maven打War包时默认不会将其打入WEB-INF/lib目录
  • <optional>true</optional>:避免该依赖被传递到其他依赖当前项目的模块中

配置完成后可通过解压War包,检查WEB-INF/lib目录下不存在对应swagger相关jar包验证效果。

强制排除配置(特殊场景适用)

如果存在依赖传递导致上述配置不生效的情况,可以在Spring Boot打包插件中添加显式排除规则:

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <excludes>
            <exclude>
                <groupId>com.mangofactory</groupId>
                <artifactId>swagger-springmvc</artifactId>
            </exclude>
            <exclude>
                <groupId>org.springdoc</groupId>
                <artifactId>springdoc-openapi-ui</artifactId>
            </exclude>
        </excludes>
    </configuration>
</plugin>

Gradle项目对应配置

如果你使用Gradle构建项目,对应配置如下:

dependencies {
    // 声明仅编译阶段生效,打包时自动排除
    compileOnly 'com.mangofactory:swagger-springmvc:0.8.8'
    compileOnly 'org.springdoc:springdoc-openapi-ui:1.4.3'
}

// 如需强制排除,可在bootWar任务中添加过滤规则
bootWar {
    exclude('**/swagger-springmvc*.jar', '**/springdoc-openapi-ui*.jar')
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 10:06:03