Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 依赖项版本冲突maven_Java_Maven_Maven 2_Dependency Management - Fatal编程技术网

Java 依赖项版本冲突maven

Java 依赖项版本冲突maven,java,maven,maven-2,dependency-management,Java,Maven,Maven 2,Dependency Management,有两个项目: A----有一个公共图书馆。1.3.7---(取决于B) B----有公共图书馆。1.2.5 所以,我们正在建设项目B,lib commons vers。1.2.5将包含并安装在本地存储库中,然后。。。 如果我们执行A的构建(它依赖于B),Maven决定lib commons是vers。1.3.7必须包括在内,因为lib与树根的距离最小。。。 我知道,如果我们将工件的版本设置为:1.2.5——这是推荐的版本。但如果我们把它放在[]中——这是一个困难的要求,maven应该应用另一种策

有两个项目:
A----有一个公共图书馆。1.3.7---(取决于B)
B----有公共图书馆。1.2.5

所以,我们正在建设项目B,lib commons vers。1.2.5将包含并安装在本地存储库中,然后。。。 如果我们执行A的构建(它依赖于B),Maven决定lib commons是vers。1.3.7必须包括在内,因为lib与树根的距离最小。。。
我知道,如果我们将工件的版本设置为:1.2.5——这是推荐的版本。但如果我们把它放在[]中——这是一个困难的要求,maven应该应用另一种策略来解决版本冲突——包括该工件的推荐版本。但当我尝试这样做的时候,couse是不起作用的,因为Maven从loc存储库中获取工件,该存储库包含对lib commons版本的引用。清单文件中的1.2.5,但包含的库-commons版本。1.3.7. 您能告诉我如何解决这个问题吗,或者在列表中可能有一些工具或maven插件可以说明这种冲突。

您需要运行
mvn dependency:tree
您需要对依赖项使用排除。诸如此类(只是一个示例):


org.springframework.integration
spring集成amqp
2.1.0.1发布
春豆
org.springframework

如果您正在使用Eclipse,并且不想手工操作,那么可以通过打开一个pom文件并选择一个“Dependency Hierarchy”(依赖层次结构)选项卡来完成,在该选项卡下可以查看所有的依赖层次结构。然后,您可以右键单击要排除的依赖项,然后单击“排除Maven工件”

@jonasas,您的意思是,在构建项目A的过程中,将包括项目B,而不包括commons库?但这不是解决办法。事实上,项目A对项目B一无所知,maven只是为B.jar提供了commons版本。1.2.5在清单文件中,但由于“最近的胜利”策略,Maven决定lib commons将。应包括1.3.7。这就是问题所在。如果您不想使用1.3.7版本,也不想使用依赖项目的库版本(1.2.5),那么您就不能从项目A中删除直接依赖项吗?
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-amqp</artifactId>
<version>2.1.0.RELEASE</version>
<exclusions>
    <exclusion>
        <artifactId>spring-beans</artifactId>
        <groupId>org.springframework</groupId>
    </exclusion>
</exclusions>
</dependency>