今天不知为何开始报错 Entry WEB-INF/classes/classpath.index is a duplicate but no duplicate handling strategy has been set.
,大约是由于 我把 Gradle 迁移到了 Kotlin 导致的
经过一番搜索,发现问题出在 IDEA 和 Gradle 均会在 build->classes 下生成 classpath.index 这个文件,这导致 Gradle 不知道该如何处理 IDEA 生成的文件而报错
在 build.gradle.kts 中增加以下代码以解决
tasks.withType<Jar> {
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
manifest {
attributes["Main-Class"] = "MainKt"
}
configurations["compileClasspath"].forEach { file: File ->
from(zipTree(file.absoluteFile))
}
}
我在搜索中也发现了另一个方法
tasks.withType(Copy).all { duplicatesStrategy 'exclude' }
不过这对我没用,不过或许有人可以,一行代码总归比多行看的舒心一些
另外再提供一个终极方案:将 build 文件夹整个删掉,可以直接 delete 键删掉,也可以 build clean
,这都没问题