Gradle “Entry .classpath 是重复的,但尚未设置重复的处理策略”

2022-09-01 05:57:06

我正在尝试构建一个gradle项目,但是,当我尝试时,我得到以下输出:$ gradle build

Starting a Gradle Daemon (subsequent builds will be faster)
> Task :jar FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':jar'.
> Entry .classpath is a duplicate but no duplicate handling strategy has been set. Please refer to https://docs.gradle.org/7.0/dsl/org.gradle.api.file.CopySpec.html#org.gradle.api.file.CopySpec:duplicatesStrategy for details.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 11s
4 actionable tasks: 2 executed, 2 up-to-date

做完之后,我得出结论,我的项目中甚至没有一个命名的文件。我该怎么办?Get-ChildItem -Path ./ -Filter .classpath -Recurse -Force.classpath


答案 1

与@korn答案类似,我使用策略解决了我的答案;EXCLUDE

tasks.withType<Jar>() {

    duplicatesStrategy = DuplicatesStrategy.EXCLUDE

    manifest {
        attributes["Main-Class"] = "MainKt"
    }

    configurations["compileClasspath"].forEach { file: File ->
        from(zipTree(file.absoluteFile))
    }
}

答案 2

jar { duplicatesStrategy(DuplicatesStrategy.EXCLUDE) .....


推荐