Java 如何解决Maven依赖关系
我想使用mongodb:bson:3.8.0版本 当我在IDE(Intellij)中运行这个项目时,它使用了bson:3.8.0 但是,当我使用命令构建它时:Java 如何解决Maven依赖关系,java,mongodb,maven,dependencies,Java,Mongodb,Maven,Dependencies,我想使用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
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/mongojava- 驱动程序-3.3.0.jar
3.8.0
,您应该直接在您的pom中明确声明对org.mongodb:bson:3.8.0
的依赖关系
此直接依赖项将取代作为传递依赖项包含的其他版本
或者,您需要为所有拉取版本
3.3.0
的依赖项添加org.mongodb:bson的排除项。我还显式声明了对pom文件的依赖项。但它仍然不是work@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
artifact吗?谢谢@ermest_k我会重新检查的