我在模块A中给出了以下模块:
<dependencies>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>4.9.2</version>
</dependency>
</dependecies>
并将模块A纳入模块B,如下所示:
<dependencies>
<dependency>
<groupId>com.example.test</groupId>
<artifactId>A</artifactId>
<version>1.01</version>
</dependency>
</dependecies>
但是mvn dependency:tree
在模块B中仍然显示3.14.9版本,请帮助。
[INFO] com.example.test:B:jar:1.01
[INFO] +- com.example.test:A:jar:1.01:compile
[INFO] | +- com.squareup.okhttp3:okhttp:jar:3.14.9:compile
我也已经把它从所有其他有3.14.9冲突的模块中排除了。我知道我可以在模块B中显式添加okhttp 4.9.2,但是有很多这样的模块,我不想每次都显式添加4.9.2版本。出于某种原因,只有okhttp是这种情况,其他依赖项解析给定的版本
2条答案
按热度按时间zynd9foi1#
我没有看到您尝试在模块B中使用的工件A的版本,您能否检查它是否与您尝试使用okhttp 4.9.2构建的版本相同
zvms9eto2#
我通过在父pom的dependencyManagement中强制依赖版本解决了依赖解析,如第二点中https://stackoverflow.com/a/2684291/5859017所述。可能父pom中的某些依赖导致了将okhttp作为可传递依赖的问题。