解决Maven中库的不兼容版本的依赖关系
我在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)
我不知道你是否考虑过。 在Maven中存在一个名为Exclusions的东西。
从文档中提取:
由于maven 2.x可以传递地解析依赖关系,因此可能会将不需要的依赖项包含在项目的类路径中。 例如,您所依赖的项目可能尚未正确声明其依赖项集。 为了解决这种特殊的问题,maven 2.x已经纳入了明确的依赖性排除的概念。 排除项是针对POM中的特定依赖项设置的,并且针对特定的groupId和artifactId。 在构建项目时,该工件不会通过声明排除的依赖项添加到项目的类路径中。
在这里链接,也许它可以帮助您在pom.xml中实现配置 – > Maven Exclusions
这是一个Java问题,没有像OSGi这样的其他技术就没有解决方案