在Maven中检测不兼容的依赖项?

And*_*ite 6 java maven

假设您有一组使用各种版本的公共库(如Spring)的Web应用程序.我有一个业务逻辑库,也使用这个公共库.到目前为止没有任何问题,但一路上公共库的版本改变了抽象类定义并打破了业务逻辑库.

所以我最终得到了一个看似这样的兼容版本表...

business-lib-version | common-lib-version
         1.0         |        1.0
         1.1         |        2.0 
Run Code Online (Sandbox Code Playgroud)

我不希望业务库版本在消费应用程序中驱动常见的lib版本.相反,我想基于公共库选择正确版本的业务库.我很确定这是不可能的,所以我继续讨论主要问题.

是否有一种优雅的方法来检测版本不兼容性?理想情况下,我想要一个构建时解决方案,否则早期的运行时解决方案就可以了.

我已经尝试在Maven中使用版本范围,但由于Maven如何对非标准版本格式的版本进行排序而导致我们遇到许多问题,并且我们在构建时正确解析范围时遇到了各种问题.

Ste*_*ker 5

如果一个依赖版本意外地被另一个依赖阻止了,Ning dependency-versions-check Maven 插件将使你的构建失败。它不会为你修复它,但它至少会告诉你!