X的Helper类在不同的java项目之间共享,每个项目使用不同版本的X.

时间:2017-12-12 19:24:19

标签: java maven classloader

假设我为kafka客户端编写了一个帮助程序类。帮助程序类不可知到kafka客户端的版本(没有API更改)。我的问题是java中这种情况的最佳实践是什么,我的意思是我不能构建一个包含我的帮助类的jar,因为它应该包含对某些版本的kafka的依赖,这是有问题的,因为我想在同一帮助类中使用两个不同的项目,一个使用kafka:0.9.0,另一个使用kafka:1.0.0。

非常感谢。

1 个答案:

答案 0 :(得分:1)

在这种情况下,在帮助程序的依赖项中,我指定了我选择支持的最小值,并期望消费者在需要时明确地引入不同的版本。

已编辑添加:

另一种选择是使用scope provided设置支持的最低版本。这意味着任何消费者都需要提供一个版本的Kafka来编译代码。

Maven依赖范围docs: https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Scope