我一直在嘗試使用Maven構建項目。該項目在我試過的幾臺電腦上都能正常工作,但在一臺機器上,我遇到了一個隨機問題。未知依賴Maven構建
從本質上講,maven正在搜索一個未包含在pom.xml文件或settings.xml文件中的依賴項。
我試過mvn依賴:purge-local-repository但仍無濟於事;我仍然堅持mvn尋找依賴我不知道它從哪裏看。
我一直在嘗試使用Maven構建項目。該項目在我試過的幾臺電腦上都能正常工作,但在一臺機器上,我遇到了一個隨機問題。未知依賴Maven構建
從本質上講,maven正在搜索一個未包含在pom.xml文件或settings.xml文件中的依賴項。
我試過mvn依賴:purge-local-repository但仍無濟於事;我仍然堅持mvn尋找依賴我不知道它從哪裏看。
如果在項目中運行mvn依賴關係:樹,您將看到引入不需要的依賴項的位置,然後可以排除依賴項。
這是輸出的一個例子:
[INFO] [dependency:tree]
[INFO] org.apache.maven.plugins:maven-dependency-plugin:maven-plugin:2.0-alpha-5-SNAPSHOT
[INFO] \- org.apache.maven.doxia:doxia-site-renderer:jar:1.0-alpha-8:compile
[INFO] \- org.codehaus.plexus:plexus-velocity:jar:1.1.3:compile
[INFO] \- velocity:velocity:jar:1.4:compile
要排除的依賴,你會做這樣的事情:
<dependency>
<groupId>sample.ProjectA</groupId>
<artifactId>Project-A</artifactId>
<version>1.0</version>
<exclusions>
<exclusion> <!-- declare the exclusion here -->
<groupId>sample.ProjectB</groupId>
<artifactId>Project-B</artifactId>
</exclusion>
</exclusions>
</dependency>
有關的依賴插件的更多細節見documentation。請參閱guide。
更新:您還可以使用m2eclipse插件生成依賴關係的圖形樹或圖形。 dependency tree screenshot http://www.sonatype.com/books/m2eclipse-book/reference/figs/web/eclipse_pom-editor-depend-tree-locate.png dependency graph screenshot http://www.sonatype.com/books/m2eclipse-book/reference/figs/web/eclipse_pom-editor-graph.png
Maven依賴可以傳遞依賴(依賴的依賴),所以即使自己是不是在POM明確聲明,Maven的可能仍然需要去找到它。
運行mvn依賴關係:樹應該幫助您診斷問題,正如Rich Seller所描述的那樣;它也可能幫助你在沒有問題的其他機器上運行它並比較輸出。
purge-local-repository在這方面並沒有真正的幫助你;所做的一切就是從本地回購中刪除工件,以防其中一個損壞。如果maven試圖獲得不屬於本地回購的依賴關係,那麼它確實無助於事。