Java 模块问题与 Confluent Kafka 库(拆分包)

问题描述 投票:0回答:0

第一次尝试将项目迁移到 Java 模块 (Jigsaw) 时,我遇到了 Confluent Serialization 库的问题:

module myproject reads package io.confluent.kafka.serializers from both kafka.schema.serializer and kafka.avro.serializer

两个库都定义了每个包都有不同的类(称为“拆分包”)。库

kafka.avro.serializer
依赖于
kafka.schema.serializer
,所以排除不相关的传递依赖不是这种情况。而且两者似乎都没有迁移到模块,所以我假设它们是自动模块。

我预计每个使用 Avro 和 Java 模块的人都会遇到这个问题,我会得到一个快速的解决方案,但我不得不找到其他类似的案例来尝试为此挖掘解决方案。 这个答案 建议将有问题的库重新打包在一个 JAR 中并托管在一个内部存储库中,但这在我的公司是不可能的(出于安全考虑)。通过将类移动到不冲突的包来融合重构库可以解决这个问题,但很难猜测他们什么时候会这样做。

是否有任何其他解决方案,在项目级别(POM 或其他)理想可行的解决方案?

java apache-kafka avro confluent-schema-registry java-module
© www.soinside.com 2019 - 2024. All rights reserved.