我正在嘗試將我的公司從maven2升級到maven3,而且一個阻止程序是一個奇怪的現象,當我激活某個配置文件時,maven反應堆開始搜索大量舊的依賴信息(10多分鐘直到內存用完)。我可以使用什麼工具來找出爲什麼maven3搜索真正舊的內部SNAPSHOT?
我見過這種行爲,如果有一個依賴有一個範圍(例如「[3.0,)」),但我很確定我已經把所有這些都抹去了。
使用MVN依賴性:樹和MVN幫助:有效-POM也不會告訴我,如果有任何範圍的依賴性和grepping爲[,],在pom.xml中的文件(或)變成了什麼,所以我現在有點難以理解下一步要去哪裏。
有關的例子就是我說一下,在我的POM我有此配置文件激活部分:
:當我在命令行中運行這個
<profile> <id>demo</id> <activation> <property> <name>client</name> <value>demo</value> </property> </activation> <dependencies> <dependency> <groupId>com.mycompany</groupId> <artifactId>client-demo</artifactId> <version>3.32.0-SNAPSHOT</version> </dependency> </dependencies> </profile>
然後MVN -Dclient =演示碼頭:運行
輸出是以往任何時候存在我的客戶演示ARTIF的每一個歷史快照成千上萬的搜索POM數據act:
....snip.....
Downloading:https://nexus.mycompany.com/nexus/content/groups/public/com/mycompany/client-demo/2.16.7-SNAPSHOT/client-demo-2.16.7-SNAPSHOT.pom
[WARNING] The POM for com.mycompany:client-demo:jar:2.16.7-SNAPSHOT is missing, no dependency information available
Downloading: https://nexus.mycompany.com/nexus/content/groups/public/com/mycompany/client-demo/2.16.8-SNAPSHOT/maven-metadata.xml
Downloading: https://nexus.mycompany.com/nexus/content/groups/public/com/mycompany/client-demo/2.16.8-SNAPSHOT/client-demo-2.16.8-SNAPSHOT.pom
[WARNING] The POM for com.mycompany:client-demo:jar:2.16.8-SNAPSHOT is missing, no dependency information available
Downloading: https://nexus.mycompany.com/nexus/content/groups/public/com/mycompany/client-demo/2.16.9-SNAPSHOT/maven-metadata.xml
Downloading: https://nexus.mycompany.com/nexus/content/groups/public/com/mycompany/client-demo/2.16.9-SNAPSHOT/client-demo-2.16.9-SNAPSHOT.pom
[WARNING] The POM for com.mycompany:client-demo:jar:2.16.9-SNAPSHOT is missing, no dependency information available
Downloading: https://nexus.mycompany.com/nexus/content/groups/public/com/mycompany/client-demo/2.16.10-SNAPSHOT/maven-metadata.xml
Downloading: https://nexus.mycompany.com/nexus/content/groups/public/com/mycompany/client-demo/2.16.10-SNAPSHOT/client-demo-2.16.10-SNAPSHOT.pom
....snip.....
編輯::一些更多的信息。
此問題似乎完全與包含通過配置文件激活的附加依賴關係相關,而不與依賴關係本身相關。例如,如果我擺脫配置文件並直接依賴於com.mycompany.client-demo-3.32.0-SNAPSHOT,則不會顯示不良行爲。所以這與反應堆處理配置文件激活的依賴關係的方式有關......我想
你能展示你的pom的所有依賴嗎? – Carlos
我可以,但是這個工件是一個相當長的依賴層次結構的「末尾」(即依賴於依賴於庫的庫,依賴於你得到的圖片)。我可以向你展示mvn依賴關係:tree,但是這是post-profile應用程序,並且存在問題。 明天早上我會發布pom.xml,看看是否有幫助。 – user311121
這個問題是基於你的依賴關係,這些依賴關係是通過使用一個依賴關係添加的,這個依賴關係是通過一個非常奇怪而且非常糟糕的配置文件添加的。此外,輸出顯示您正在嘗試使用不在您的存儲庫(nexus)中的其他依賴項。除此之外,定義版本範圍是一個非常糟糕的做法。要測試這樣的構建,最好消滅整個本地存儲庫並嘗試構建(mvn clean package)。 – khmarbaise