我编写了一个具有以下依赖项的java sdk:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.18.0</version>
</dependency>
SDK 可以自行按预期工作。
依赖树:
[INFO] +- com.fasterxml.jackson.core:jackson-databind:jar:2.18.0:compile
[INFO] | +- com.fasterxml.jackson.core:jackson-annotations:jar:2.18.0:compile
[INFO] | \- com.fasterxml.jackson.core:jackson-core:jar:2.18.0:compile
然后我将此 SDK 作为客户端程序的依赖项包含在内。但程序失败并出现错误:
java.lang.ClassNotFoundException: com.fasterxml.jackson.core.util.JacksonFeature
JacksonFeature 类是 jackson-core 的一部分。和依赖 T 恤:
[INFO] com.fasterxml.jackson.core:jackson-databind:jar:2.18.0:compile
[INFO] | \- com.fasterxml.jackson.core:jackson-annotations:jar:2.18.0:compile
为什么maven构建时不拉取jackson-core依赖?
客户端程序可能不是构建为 fat JAR,即包含依赖项。为此,请使用 Maven 程序集插件或 Maven 阴影插件。