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