今天不知為何開始報錯 Entry WEB-INF/classes/classpath.index is a duplicate but no duplicate handling strategy has been set.,大約是由於 我把 Gradle 遷移到了 Kotlin 導致的 經過一番搜 ...
今天不知為何開始報錯 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
,這都沒問題