假设我为kafka客户端编写了一个帮助程序类。帮助程序类不可知到kafka客户端的版本(没有API更改)。我的问题是java中这种情况的最佳实践是什么,我的意思是我不能构建一个包含我的帮助类的jar,因为它应该包含对某些版本的kafka的依赖,这是有问题的,因为我想在同一帮助类中使用两个不同的项目,一个使用kafka:0.9.0,另一个使用kafka:1.0.0。
非常感谢。
答案 0 :(得分:1)
在这种情况下,在帮助程序的依赖项中,我指定了我选择支持的最小值,并期望消费者在需要时明确地引入不同的版本。
已编辑添加:
另一种选择是使用scope
provided
设置支持的最低版本。这意味着任何消费者都需要提供一个版本的Kafka来编译代码。
Maven依赖范围docs: https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Scope