解决 IDEA classpath.index 重复问题

发布时间 2023-09-25 10:28:25作者: Starsdust

今天不知为何开始报错 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,这都没问题