1
wxw752 23 小时 8 分钟前
|
2
miaotaizi 21 小时 46 分钟前
你要不把你的 pom.xml 复制给 ai 让 ai 帮你看看?
按照你标题的描述我觉得能起作用才怪了。子模块里面的依赖为什么父模块要知道? 反过来, 父模块的依赖一定是能被子模块使用。 |
3
PolarisY 16 小时 51 分钟前
给你介绍个命令 mvn dependency:tree -Dverbose ,用用看你能发现什么。
|
4
shangfabao 5 小时 49 分钟前
你把
moudle-B 的引用贴出来 |
5
helloworld19 5 小时 37 分钟前
👀
|
6
abcbuzhiming OP @wxw752
1.没有写过这个 scope 2.后面发现。还真是这个原因。 @miaotaizi 按照 maven 官方文档的说法,子模块的依赖是会传导进父模块的,所以父模块肯定知道子模块的依赖 @PolarisY 感谢你的这个命令,我是思维定式了,被困在 IDEA 这个 IDE 里提供的 maven help 提供的信息中。正是这个命令,让我发现了一件有趣的事情: +- (com.squareup.okhttp3:okhttp:jar:3.14.9:compile - version managed from 3.12.13; omitted for duplicate) 明明,lib1 依赖的 okhttp 是 3.12.13 ,但是运行 mvn dependency:tree 后,显示 compile 时的依赖却是 3.14.9 。很显然,我原本以为这个依赖是 lib1 造成的,现在看 lib1 虽然要引用依 okhttp ,但是版本却不是它指定的。 最后我顺藤摸瓜的找到了一个命令 mvn help:effective-pom -Dverbose 这个命令指出,module A 引用的另外一个 lib ,这个 lib 中,指定了 okhttp:jar:3.14.9 ,根据 maven 依赖冲突调解路径最近原则,maven 实际用了这个版本。 所以,module B 不需要排除依赖,直接在 module A 中强制指定 okhttp 为 4.x ,根据路径最近原则,这个版本会强行覆盖 module B 中的 okhttp 依赖,于是问题终于解决了 |