具体示例:
我正在编写一个库来提供给定的功能。在编写我的库时,我想使用Apache Commons(即StringUtils等),而不是重新发明轮子。不幸的是,如果我将该库包含在我的库中,或者作为一个单独的jar或者内置到我自己的jar(build-with-dependencies)中,我会强制Apache Commons使用我的库...而且我强制使用我使用的版本在他们身上。
问题:
有没有办法在Java中创建一个依赖于第三方库的库/ jar而不强迫那些使用你库的人使用该库(或者更糟的是那个库的版本)?
答案 0 :(得分:2)
答案 1 :(得分:1)
如果你打算通过Maven分发一个二进制jar,你不应该过分担心“强迫”依赖任何使用jar的人。任何使用Maven的人都完全习惯于被拖入的传递依赖.Maven有很多用于解决版本冲突的奇怪代码。
如果你对此非常偏执,你可以使用shade插件创建一个带有依赖项的超级jar,并重命名所有依赖项的包:http://maven.apache.org/plugins/maven-shade-plugin/examples/class-relocation.html但是它并不是必需的。