Gradle构建Spring Boot应用遇META-INF/MANIFEST.MF重复错误求助
解决Spring Boot Gradle构建中META-INF/MANIFEST.MF重复的问题
你遇到的问题出在bootJar任务上,而非你配置的普通jar任务。Spring Boot的bootJar是独立任务,专门负责构建可执行Spring Boot jar,你之前在jar块里添加的duplicatesStrategy对它完全无效。
解决方案
直接给bootJar任务配置重复文件处理策略,同时可以删掉手动设置Main-Class的代码——Spring Boot会自动识别主类并生成正确的MANIFEST.MF,手动配置反而容易引发冲突。
修改你的build.gradle,替换原jar块为以下内容:
// 普通jar任务配置(若不需要普通jar包可直接删除此块) jar { duplicatesStrategy = DuplicatesStrategy.EXCLUDE // 移除手动配置的manifest,避免和bootJar冲突 } // 核心配置:给bootJar设置重复文件处理策略 bootJar { duplicatesStrategy = DuplicatesStrategy.EXCLUDE }
如果不需要生成普通jar包,甚至可以直接删掉整个jar块,仅保留bootJar的配置即可。
为什么之前的方法无效?
- 你配置的
jar是Gradle默认的普通jar构建任务,和Spring Boot的bootJar是两个独立任务,报错的是后者,所以之前的配置没作用。 - 降级Gradle版本无法解决问题,这是任务配置覆盖不到位的问题,和Gradle版本无关。
重新执行gradle build即可正常完成构建。
内容的提问来源于stack exchange,提问作者DR93
相关产品推荐
相关产品推荐

