maven依赖问题
项目A依赖了项目B,项目B中依赖了commons-io
。所以项目A中也间接依赖了commons-io
。
在IDEA
编辑器中进行开发时,使用了commons-io
的FileUtils
类,运行没有问题,但是在进行maven
打包时,会报错相关的类找不到符号。
在编辑器中可以看到该类依赖的是commons-io:2.11.0
,但是在maven
打包时,会报错找不到符号。同时可以看到编辑器中显示还有其他版本的commons-io
。
这说明可能是依赖了多个版本导致的。
使用mvn dependency:tree
解析依赖关系,发现确实是通过其他项目间接依赖的commons-io
的其他版本。
Maven
在解析依赖时,如果遇到了多个版本的同一个依赖,它会选择路径最短的那个。当多个版本路径层级相同时,按列出顺序选择第一个。
这种情况最好是在pom
文件中直接添加对commons-io
的依赖,或者使用<dependencyManagement>
元素来管理依赖的版本。
编辑 (opens new window)
上次更新: 2024/06/17, 11:58:14