我有一个Sping Boot 2.2.x项目,在执行gradlew build
时遇到以下错误:
* What went wrong:
Execution failed for task ':myproject:bootWar'.
> Entry WEB-INF/lib/angular-1.8.3.jar is a duplicate but no duplicate handling strategy has been set. Please refer to https://docs.gradle.org/7.6/dsl/org.gradle.api.tasks.Copy.html#org.gradle.api.tasks.Copy:duplicatesStrategy for details.
不幸的是,这个错误发生在一个大的升级过程之后(从Spring 1.5开始),所以我不能真正跟踪我所做的任何一个更改。
我怎么才能知道那个复制品是从哪里来的?
根据我在Stackoverflow上找到的答案,每个人都建议排除“第二个”重复项来处理重复项,但我没有找到一个适用于所有任务的解决方案--因为如果我为任务bootWar
设置了一个处理策略,那么对于其他任何以某种方式生成某些东西的任务(Jar、Tar、Zip,你能想到的都有),我都会得到同样的错误。
我也认为这个问题的根本原因是重复的Angular jar文件。我想解决这个问题。
我已经找到答案:
https://github.com/TheBoegl/gradle-launch4j/issues/117
How fix a build problem: Entry com/netflix/server/context/BiDirectional.class is a duplicate but no duplicate handling strategy has been set
Gradle "Entry .classpath is a duplicate but no duplicate handling strategy has been set"
1条答案
按热度按时间2hh7jdfx1#
最后通过将import语句更改为以下内容修复了该问题:
问题是依赖项
org.webjars.npm:angular:1.8.3
带有两个不同的依赖项。这是根本问题。应用重复处理策略只是以错误的方式处理它,我相信。另请参阅此帖子:https://github.com/spring-projects/spring-boot/issues/33659