我在Maven-Java中遇到依赖问题。我的问题是两个模块具有不同版本的依赖关系,并且这些版本不兼容。我可以解决吗?
问题的一个例子
我有三个模块(MA,MB和MC)和两个库(LA和LB),LA有两个版本(v1和v2),它们是不兼容的
第一个模块MA包含主类,它取决于MB和MC
MB模块取决于LA v2。
MC模块取决于LB版本。
LB版本取决于LA v1。
最后,依赖树如下:
MA
| - MB
| | - LA (v2)
| - MC
| | - LB
| | | LA (v1)
答案 0 :(得分:2)
我不知道你是否考虑过。在Maven中存在一个名为排除的东西。
从文档中摘录:
由于maven 2.x可传递地解析依赖关系,因此可能 不需要的依赖项将包含在项目的类路径中。 您依赖的项目可能尚未声明其设置 例如,正确的依赖关系。为了解决这个特殊问题 situtation,maven 2.x已经纳入了明确的概念 依赖性排除。排除是根据特定的依赖关系设置的 你的POM,并针对特定的groupId和artifactId。什么时候 您构建项目时,该工件将不会添加到您的项目中 项目的类路径通过排除的依赖关系 宣布了。
这里是链接,也许它可以帮助您在pom.xml中实现配置 - > Maven Exclusions
答案 1 :(得分:-1)
这是一个Java问题,没有OSGi等其他技术的解决方案