根據這個答案,假設您使用某種類似Maven Assembly插件或Maven EAR插件的插件來將項目的所有依賴項複製到目標文件夾。
很可能像Guice這樣的一些依賴項正在拉動aopalliance:aopalliance
工件(groupId:artifactId表示法),而您剛剛添加了對org.aopalliance:aopalliance
的依賴關係。 Maven不知道它只是兩次添加相同的類文件 - 它檢查groupId和artifactId以查看兩個罐子是否(據說)不同。
你有兩個選擇:
刪除依賴於你的勁歌,或改變的groupId到aopalliance
。
跟蹤aopalliance
依賴關係來自哪裏,然後從有問題的構件的傳遞依賴性中排除aopalliance
構件。
您可以通過運行mvn dependency:tree
做(2),或通過打開你的POM並查看相關層次標籤m2eclipse插件。下面是依賴的一些示例輸出:樹命令:
mygroup:earproj:pom:2.3.1-SNAPSHOT
+- mygroup:wslib:jar:2.3.1-SNAPSHOT:compile
| +- axis:axis:jar:1.4:compile
| | +- org.apache.axis:axis-saaj:jar:1.4:compile
| | +- axis:axis-wsdl4j:jar:1.5.1:runtime
| | +- commons-logging:commons-logging:jar:1.0.4:runtime
| | \- commons-discovery:commons-discovery:jar:0.2:runtime
| +- org.apache.axis:axis-jaxrpc:jar:1.4-noqname:compile
| \- commons-httpclient:commons-httpclient:jar:3.0.1:runtime
| \- commons-codec:commons-codec:jar:1.2:runtime
+- mygroup:commonclass:2.3.1-SNAPSHOT:compile
看看共享記錄爲例,我們可以看到,軸:軸庫依賴於它。
一旦知道哪個庫取決於aopalliance
,you can add an exclusion in the POM。如果您保留此排除和org.aopalliance
依賴關係在同一個POM中的聲明,將是首選。
依賴項不應該對目標目錄有任何影響。你能包含整個pom.xml嗎? – bpgergo
這個工件是手動安裝在你的連接處還是通過鏡子從中央拉出來? – Jon7
工件被手動安裝在nexus中,並且據我所知,在pom中安裝和引用的方式與其他工件在pom中的安裝和引用方式之間完全沒有區別。因此我的迷茫。 – ccc