可以說我們有3層工程。數據庫,商業,Web和聚合POM。如何發佈具有項目間依賴關係的Maven多模塊項目?
Project
|-DB
| |-pom.xml
|-Business
| |-pom.xml
|-pom.xml
所有的模塊都換貨被釋放和支鏈在一起,所以聚合POM被配置爲相同的版本分配給所有的子模塊。我們有以下版本:
DB-0.1-SNAPSHOT
Business-0.1-SNAPSHOT which depends on DB-0.1-SNAPSHOT
Web-0.1-SNAPSHOT which depends on Business-0.1-SNAPSHOT
在做release:prepare
,更新到0.1所有版本,但準備失敗,因爲存在依賴關係沒有DB-0.1
呢。
一種解決方案是爲每個模塊中創建不同的項目,同時使用versions:use-releases
插件更新的依賴,以0.1
但由於它需要大量的配置和腳本的,我不喜歡這個主意的一個釋放他們的。所以,我更喜歡使用聚合並通過單一命令釋放所有模塊,但問題是,正如我上面所寫,當發佈插件嘗試構建Business-0.1
時,存儲庫中還沒有DB-0.1
。
有什麼辦法可以管理這些項目間依賴關係嗎?
謝謝。
UPD:
即使安裝目標失敗。
- DB構建 - OK(無快照也不發行版本中的任何存儲庫)
- 業務 - (!在倉庫未發現DB-0.1-SNAPSHOT但它甚至不應該在那裏還)失敗
我使用maven 3.0.2和發佈插件2.1
您已將Business和DB列爲父POM的模塊,對嗎?你正在運行版本:準備*只*在父POM上,對吧?您所描述的功能通常是即開即用的。 – 2011-03-02 12:46:58
是的,它運行如果業務依賴於已存在於存儲庫中的一些舊版本的數據庫。但是,如果你試圖引用不能在版本庫中的新版本,因爲它甚至還沒有構建,那麼不,它不起作用。 – Dima 2011-03-02 13:02:22
它不需要在回購 - Maven會查找其「反應堆」(即目前正在建設的模塊)首先。 – 2011-03-02 13:31:51