【问题标题】:How to resolve Maven dependency如何解决 Maven 依赖
【发布时间】:2018-08-21 15:21:15
【问题描述】:

我想用版本mongodb:bson:3.8.0

当我在 IDE (Intellij) 中运行这个项目时,它使用了 bson:3.8.0

但是,当我使用命令构建它时:

mvn clean install

它将与另一个版本一起运行:org.mongodb:bson:3.3.0

这是依赖树:

+-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  +-org.mongodb:bson:3.8.0
and
+-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  +-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    +-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
      +-org.mongodb:bson:3.3.0
and
+-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  +-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    +-org.mongodb:mongodb-driver-async:3.3.0
      +-org.mongodb:bson:3.3.0
and
+-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  +-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    +-org.mongodb:mongodb-driver-async:3.3.0
      +-org.mongodb:mongodb-driver-core:3.3.0
        +-org.mongodb:bson:3.3.0

当我显示 Bson lib 的路径时,我得到了结果:

  • 当我在 IDE 中运行时:../org/mongodb/bson/3.8.0/bson-3.8.0.jar

  • 当我使用 mvn 命令构建后运行时:../app/lib/mongo-java- driver-3.3.0.jar

【问题讨论】:

    标签: java mongodb maven dependencies


    【解决方案1】:

    要强制 maven 使用版本 3.8.0,您应该直接在您的 won pom 中明确声明对 org.mongodb:bson:3.8.0 的依赖。

    这种直接依赖将取代作为传递依赖包含的其他版本。

    或者,您需要在所有拉取版本 3.3.0 的依赖项上为 org.mongodb:bson 添加排除项

    【讨论】:

    • 我还明确声明了对我的 pom 文件的依赖。但是还是不行
    • @TatHuan 没办法。请发布您的 pom 文件的实际内容,因为不应该是这种情况。
    • 对不起,这是一个私人项目。所以我不能发布所有依赖项。当我打印 Bson lib 的路径时,我得到了结果: 当我在 IDE 中运行时:../org/mongodb/bson/3.8.0/bson-3.8.0.jar 当我在使用 mvn 命令构建后运行时: ../app/lib/mongo-java-driver-3.3.0.jar
    • 在那种情况下没有办法说。据我所知,直接在这个 pom 中声明依赖会覆盖传递依赖。你可以试试mvn dependency:tree 看看它来自哪里。但也有可能您的问题出在包装或其他方面。这是war 神器吗?
    • 谢谢@ermest_k 我会重新检查
    猜你喜欢
    • 2011-04-01
    • 1970-01-01
    • 2019-01-14
    • 2017-01-06
    • 2019-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多