首页 > 解决方案 > Maven 没有使用 pom.xml 中指定的依赖版本

问题描述

我有一个项目 A,它具有 B 和 C 依赖项。项目 B 也依赖于 C。

在项目 A pom 中,我有:

    <dependencyManagement>
        <dependency>
            <groupId>br.com.mygroup</groupId>
            <artifactId>C</artifactId>
            <version>2</version>
        </dependency>
    </dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>br.com.mygroup</groupId>
            <artifactId>B</artifactId>
            <version>BVERSION</version>
        </dependency>
        <dependency>
            <groupId>br.com.mygroup</groupId>
            <artifactId>C</artifactId>
            <version>2</version>
        </dependency>
    <dependencies>

在项目 B(版本BVERSION)中,我有:

    <dependencies>
        <dependency>
            <groupId>br.com.mygroup</groupId>
            <artifactId>C</artifactId>
            <version>1</version>
        </dependency>
    </dependencies>

我在版本 2 的 C 依赖项中添加了一些方法,但是当我尝试使用新方法时代码无法编译。也就是说,我无法访问新方法。项目 A 正在使用 C 的版本 1(在项目 B 中)。

如果我将项目 A pom 中的导入顺序从 更改B, CC, B,则代码会编译,但在执行时会java.lang.NoSuchMethodError出现错误。

maven 不应该dependencyManagement处理这个问题并强制项目 A 使用 C 的第 2 版吗?有谁知道我做错了什么?

编辑1:

mvn dependency:tree返回以下内容:

[INFO] br.com.mygroup:A:1.0-SNAPSHOT
[INFO] +- br.com.mygroup:B:jar:BVERSION:compile
[INFO] +- br.com.mygroup:C:jar:2:compile

编辑2:

mvn dependency:list返回以下内容:

[INFO] Scanning for projects...
[INFO] 
[INFO] --------------------< br.com.mygroup:A >---------------------
[INFO] Building A 1.0-SNAPSHOT
[INFO] --------------------------------[ war ]---------------------------------
[INFO] 
[INFO] --- maven-dependency-plugin:2.8:list (default-cli) @ A ---
[INFO] 
[INFO] The following files have been resolved:
[INFO]    br.com.mygroup:B:jar:BVERSION:compile
[INFO]    br.com.mygroup:C:jar:2:compile
[INFO] 
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.639 s
[INFO] Finished at: 2019-10-04T09:03:37-03:00
[INFO] ------------------------------------------------------------------------

标签: javamaven

解决方案


推荐阅读