我已將所有存儲庫配置從我的各種項目中重構爲一個父pom,該父pom是爲具有配置單點配置(例如回購和分配管理)的特定目的而創建的。據我所知,這應該是最佳實踐。在我的父母pom部署到nexus服務器,然後試圖運行我的子項目。他們找不到我的父母。 。 。這種情況對我來說很有意義,因爲在沒有父母的情況下他們不知道關於聯繫回購的情況。 。 。看起來像雞和蛋類的東西?我錯過了明顯的東西嗎?如果在父pom中配置了存儲庫,我的pom如何找到父pom?
14
A
回答
7
確實,您的項目需要知道在哪裏可以找到存儲庫來下載它的依賴關係。但在去外部存儲庫之前,Maven會檢查你的本地存儲庫,看看它需要的工件是否在那裏。您的本地存儲庫是否包含父pom?如果沒有,您可以通過運行
mvn install
在父pom上添加它。這個問題可能是由於直接將父pom部署到Nexus引起的,繞過了本地的問題。您可以通過使用
mvn deploy
這將首先在本地安裝神器部署今後避免這種情況,然後將其部署到外部存儲庫(的Nexus,你的情況)。更多詳細信息,請參見:http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html
如果您處於父母pom由其他人構建和部署的情況,這將無濟於事。您可以在項目的pom中或在本地settings.xml中指定存儲庫。一種常見的方法是期望所有開發人員在其本地settings.xml中包含一個指向您的Nexus存儲庫的存儲庫定義,並將其用作所有其他存儲庫的鏡像。然後,您可以在Nexus中配置您需要的每個外部存儲庫,並讓它檢索您需要的任何依賴關係。我不熟悉Nexus,但是可以在這裏找到有關鏡像的更多詳細信息:http://maven.apache.org/guides/mini/guide-mirror-settings.html
4
您必須維護每個子項(maven模塊)的存儲庫定義,這是構建過程中的主要最佳實踐:「使構建便攜式「。
任何開發人員/系統都應該能夠構建任何模塊,而無需父源或其他模塊的源依賴關係,只能使用存儲庫引用。
相關問題
- 1. 如何配置maven pom存儲庫?
- 2. Maven找不到父POM
- 3. 從遠程存儲庫下載父pom
- 4. pom子項目中的父pom版本
- 5. 如何從子pom中刪除父pom中定義的插件配置
- 6. Maven的 - 如何找出對父POM
- 7. 如何找出父母的pom版本?
- 8. 如何從父pom繼承依賴關係到子pom
- 9. 如何找到受父母的pom變化影響的孩子的pom?
- 10. Maven:確定父POM
- 11. 試圖連接模塊POM和父POM。我如何設置相對路徑?
- 12. 非解析父POM:找不到神器
- 13. 嘗試使用$ {parent.groupid}引用父pom的父pom時出現「不可解析的父POM:無法傳輸工件」
- 14. Maven的:如何讀取父POM版本
- 15. POM行家父問題如何
- 16. 從父pom中刪除子pom的maven依賴關係
- 17. 從父pom繼承屬性
- 18. 哪個Pom是父母?
- 19. Maven構建最後父POM
- 20. 如何覆蓋子pom的Maven 3.0父配置文件屬性?
- 21. 不可解析的父POM:找不到神器org.sakaiproject:主:pom:10-SNAPSHOT和'parent.relativePath'
- 22. 常春藤解析POM依賴其中version來自POM父
- 23. 如何在pom文件中配置maven
- 24. 如何在Maven POM中配置HSQLDB 2.2.5?
- 25. 如何導入Maven項目時找不到它的父pom?
- 26. 如何找到請求缺失POM的POM?
- 27. 如何在Maven中驗證我的父POM的pluginManagement部分?
- 28. 在Git項目中添加父級POM
- 29. 在父POM中排除僞指令
- 30. 在Gradle中獲取POM父項
謝謝,這有助於。我希望我能找到一個解決方案,這意味着開發人員可以簡單地檢查項目,並構建一切工作。這種「設計無用性」使得settings.xml有點令人討厭,但並不壞;)問題在於scm結構中的父pom位於許多項目之上。某個特定項目的開發人員不希望在父Pom的高度簽出。 。 。也許一些scm技巧是爲了。 – chad 2012-01-06 15:16:50
當然,我自己也遇到過這個問題。可以將父pom放在其他地方,而不是放在svn樹的頂部,並在頂部的另一個pom中定義子模塊。親子關係在Maven中有兩個方面;定義父級允許配置的繼承,並且定義模塊允許構建被聚合。兩者不必一起走 - 你可以把父項目放在其他地方,並在你的svn樹的頂部使用一個新的pom,這樣父項就可以被檢出並自行構建。 – Conan 2012-01-07 19:01:31