有两个项目:
A ----有一个lib commons vers。 1.3.7 ---(取决于B)
B ----有lib commons vers。 1.2.5依赖版本冲突maven
所以,我们正在建设项目B,lib commons vers。 1.2.5将被包含并安装在本地存储库中,然后...如果我们执行构建的A(依赖于B),Maven将决定lib commons vers。 1.3.7必须包括在内,因为lib距离树根的距离最小...... 我知道如果我们将工件的版本设置为:1.2.5-这是推荐的版本。但是如果我们把它放在[]中 - 这是一个很难的要求,maven应该应用另一个策略来解决版本冲突 - 以包含该工件的推荐版本。但是当我尝试这样做的时候,它并没有起作用,因为Maven会从loc库获取工件,其中包含对lib commons vers的引用。 1.2.5在清单文件中,但包含lib - commons vers。 1.3.7。你能否告诉我该如何解决这个问题,或者在列表中可能有一些工具或者maven插件可以告诉你这样的问题。
@jonasas,你的意思是说,在项目的构建过程中,项目B将包含没有公共库?但这不是一个解决方案。实际上项目A对项目B一无所知,maven只提供B.jar和commons vers。 1.2.5在MANIFEST文件中,但由于“最接近胜利”策略Maven决定lib commons vers。应该包括1.3.7。那就是问题 – gizzy
如果你不想使用1.3.7版本,并且想要使用库的依赖项目的版本(1.2.5),你不能直接从项目A中删除直接依赖项吗? – jonasnas