gpt4 book ai didi

java - Gradle中的依赖阴影

转载 作者:行者123 更新时间:2023-12-03 05:40:55 25 4
gpt4 key购买 nike

我正在使用第三方依赖项,该依赖项将某些jackson文件着色为shaded.jackson.core。*或shaded.jackson.databind。*,并在其应用程序中使用了它(作为导入)。但是,我要使用不同于此依赖项中阴影阴影的版本的 jackson 。因此,我试图在gradle中使用重定位功能,以类似于(与最新版本的)shaded.jackson来着色jackson依赖项,然后再使用它。

  shadowJar {
mergeServiceFiles()
classifier = ''
dependencies {
include(dependency('com.fasterxml.jackson.core:jackson-annotations:2.9.6'))
include(dependency('com.fasterxml.jackson.core:jackson-core:2.9.6'))
include(dependency('com.fasterxml.jackson.core:jackson-databind:2.9.6'))
}
relocate 'com.fasterxml.jackson.core', 'shaded.jackson.core'
}

但是,当我用gradle构建项目时,我会收到“由:java.lang.ClassNotFoundException:shaded.jackson.core.JsonProcessingException引起”。在这里,从第三方依赖项中的某个Java类中调用了“shaded.jackson.core.JsonProcessingException”。欢迎任何建议或更正!

最佳答案

着色的目的是使库开发人员可以包括其依赖关系的特定版本,而不会影响其库用户使用此类依赖关系的不同版本的能力。所以我不知道您为什么要尝试用其他版本覆盖阴影的Jackson类。您一定会遇到问题,因为您使用的第三方库尚未编写为使用Jackson 2.9.6版。

如果要在编写的代码中使用Jackson 2.9.6,则不要relocate这些类,而应将com.fasterxml.jackson.core...导入到您编写的类中。

关于java - Gradle中的依赖阴影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53093015/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com