1
我有我有行家以下循环依赖的情况下:如何在maven中排除循环弃用的依赖关系而不会完全依赖关系?
JAR A version 1.1 depends on JAR B version 1.0
JAR B version 1.1 depends on JAR A version 1.0
出于某种原因,我不知道,Maven的把所有的4个JAR文件:一个1.0,一个1.1,B 1.0和B 1.1,这会导致类路径冲突。
这真的很糟糕。我已经要求两个JAR的开发者来解决这个问题,但是我不能简单地坐着等待他们决定修复这个问题的那一天。
我尝试这样做:
<dependency>
<groupId>groupA</groupId>
<artifactId>artifactA</artifactId>
<version>1.1</version>
<type>pom</type>
<scope>compile</scope>
<exclusions>
<exclusion>
<groupId>groupB</groupId>
<artifactId>artifactB</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>groupB</groupId>
<artifactId>artifactB</artifactId>
<version>1.1</version>
<type>pom</type>
<scope>compile</scope>
<exclusions>
<exclusion>
<groupId>groupA</groupId>
<artifactId>artifactA</artifactId>
</exclusion>
</exclusions>
</dependency>
结果是行家排除所有的JAR文件,就好像没有依赖关系,并将该项目不编译因为有遗漏的类。
因此,除了要求两个JAR开发人员解决此问题外,我该怎么办?如何导入两个新的依赖项,同时忽略两个旧的依赖项?
这是我在实践中做的 – DaShaun 2011-03-03 15:22:57
我可以声明两个版本的相同依赖项插入到类路径中吗 – 2011-03-06 15:28:38
否,据我所知,maven对此感到灰心 - 而且在实践中你不应该这样做,因为上课会犯规无论如何(最有可能按字母顺序),从第一次遇到的依赖关系(jar文件)加载,所以你不会从中受益。 – 2011-03-08 10:41:34