【问题标题】:Errors when migrating from maven to gradle从 maven 迁移到 gradle 时的错误
【发布时间】:2021-12-31 00:19:17
【问题描述】:

您好,我试图从 maven 迁移到 gradle,但在编译时出现此错误,而且我对 gradle 还很陌生,所以现在想知道如何准确地修复问题以及在哪里修复它们。 我无法分享 src bc 它的私有内容,但如果项目需要,我可以分享一些 img。

Execution failed for task ':jar'.
> Entry org/lydark/api/common/Api.class is a duplicate but no duplicate handling strategy has been set. Please refer to https://docs.gradle.org/7.2/dsl/org.gradle.api.tasks.Copy.html#org.gradle.api.tasks.Copy: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.

【问题讨论】:

    标签: java maven gradle migrating


    【解决方案1】:

    第一步是了解你的 Jar 任务是如何配置的。看来你有不止一个 org.lydark.api.common.Api 类。我认为只有当你有多个源集时才有可能,但在不知道你的项目结构的情况下,我不能准确地说出来。您不能共享项目,但可以只共享 build.gradle 文件吗?

    如果您可以识别并消除额外的 Api 类,那么您的问题应该会消失。如果您不能解决这个问题,作为一种解决方法(不是正确的解决方案),您可以为 Jar 任务配置重复处理。 例如:

    jar {
      duplicatesStrategy = DuplicatesStrategy.INCLUDE
    }
    

    有关更多信息,请参阅错误指向的文档。

    根据您的其他信息... 为什么不能在单独的模块中?您应该制作三个嵌套项目。 Api、Api-Spigot、Api-速度。 Api-Spigot 和 Api-Velocity 将取决于 Api。

    https://docs.gradle.org/current/userguide/declaring_dependencies_between_subprojects.html

    【讨论】:

    • 嗨,是的,我有,我复制了它,因为我有 3 个模块:Api -> 通用类。 Api-Spigot -> 有特定依赖项,甚至是不同的 Java 版本 Api-Velocity -> 有其他依赖项不能与最后一个模块一起工作的地方。那么为什么我在所有模块中都粘贴了Api的公共src,只是因为当我要部署每个Api-Spigot和Api-Velocity时,它需要这些文件在或在存储库中,或在本地,但它可以'不能在不同的模块中,至少使用 maven 我无法像那样部署它。
    • 查看我最近对答案的编辑。你应该做三个子项目。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-08
    • 2021-05-03
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 2019-04-16
    • 1970-01-01
    相关资源
    最近更新 更多