我有一个maven项目A,这个项目依赖于项目B,而项目B又依赖于mysql-connector-java。
项目B依赖于mysql-connector-java:8.0.27。然而,无论我做什么,项目A坚持使用mysql-connector-java:5.1.39。
Maven告诉我:
信息+- mysql:mysql-连接器-java:jar:5.1.39:编译(版本管理为8.0.27)
项目A和项目B都没有以任何特定的方式管理版本,除了B所做的常规依赖项包含之外:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.27</version>
</dependency>如何确定管理mysql-connector-java的位置?我试着在我管理的项目中搜索--找不到这个特定的版本在任何地方被提及。
发布于 2022-01-07 19:54:44
分析包所具有的依赖关系的一种方法是运行以下命令:mvn dependency:tree
这将打印一个完整的树,显示哪个依赖项(和版本)已被拖到项目中。这是查看5.1.39版本连接器包来自何处的一个很好的方法。
一旦您找到它,解决它的最好方法就是使用连接器的旧版本的包。另一个(不是最好的)选项是在包A的pom文件中使用排除。
发布于 2022-01-07 23:16:56
除了mvn dependency:tree -Dverbose之外,调用mvn help:effective-pom也可能有助于确定它的来源。
https://stackoverflow.com/questions/70422245
复制相似问题