java Maven无法解析给定的嵌套依赖关系版本

ulydmbyx  于 2022-12-25  发布在  Java
关注(0)|答案(2)|浏览(143)

我在模块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是这种情况,其他依赖项解析给定的版本

zynd9foi

zynd9foi1#

我没有看到您尝试在模块B中使用的工件A的版本,您能否检查它是否与您尝试使用okhttp 4.9.2构建的版本相同

zvms9eto

zvms9eto2#

我通过在父pom的dependencyManagement中强制依赖版本解决了依赖解析,如第二点中https://stackoverflow.com/a/2684291/5859017所述。可能父pom中的某些依赖导致了将okhttp作为可传递依赖的问题。

相关问题