2014-12-24 33 views
0

我有一種情況,在我的EAR文件中,我有'N'個JAR文件[模塊]存在。在這些JAR文件中,有一些重複的工件。重複,我的意思是神器名稱是相同的,但具有不同的版本。Maven - 識別依賴項的源pom文件

例如: 適配器鹼基59.0-20141219-311675-3.jar 適配器基礎60.0-20141223-678915-68.jar

我想獲得關於如何找到源頭幫助這些JAR文件的pom文件位置。

任何幫助,這是高度讚賞。

問候, Deepan

+0

源POM文件應位於本地Maven回購站中與特定依賴關係相同的位置。如果您按照[本文]中的說明進行操作(http://stackoverflow.com/questions/18594923/load-class-within-jar-file-and-get-its-path),您可能會發現可以使用的解決方案。 .. –

+0

你以前做過'mvn clean'嗎?這些是來自Nexus存儲庫管理器的SNAPSHOT工件......它看起來在構建中還有其他問題,因爲在您的構建版本中有一個版本爲「59.0-SNAPSHOT」和「60.0-SNAPSHOT」.... – khmarbaise

回答

0

,可能是有點痛苦,但將相關可以在父pom.xml中,傳遞依賴或配置文件。配置文件也可以位於settings.xml中。

我會做的是在依賴被複制,然後搜索它從何而來pom.xml中執行mvn dependency:tree。然後按照這個路徑。

這是一個有點奇怪,你有一個不同版本的同一個罐子兩次。通常maven會找到第一個(或最接近的)一個。因此,向您的pom.xml添加正確的版本的距離爲1,這將永遠贏 - 任何傳遞依賴關係將有更大的距離。 它可能是依賴使用不同的groupId,並且maven無法檢測到它的相同工件。

您也可以嘗試打開jar文件 - 通常行家增加了一些信息到META-INF目錄(如果你是幸運和瓶子是發佈使用Maven釋放小插件)。