2013-01-07 52 views
0

這裏是我的項目結構,Maven的:傳遞 - 循環依賴 - 發行過程

Parent 
^^^ 
| | | 

A B C 

項目A,B,C依賴於家長。父具有依賴關係管理部,其確定A,B和C.

的版本在釋放過程中,我第一釋放母體,這將有A,B,C的尚待發布的版本,則將A,B和C的父項更改爲最新版本的父項。

A -> C, B->A and C->A 

現在由於上述依賴性,我無法確定A,B和C. 的釋放順序。如果我釋放的第一,它會抱怨的C即發行版本是不可用(因爲父在發佈時提前聲明C的版本)。我不能先鬆開C,因爲它依賴於A.

我有父母,A,B和C作爲單獨的Git回購。有沒有辦法,我可以解決這個問題。

+0

必須有一個原因,A和C彼此依賴,爲什麼呢?也許你可以將A和C共享的公共部分去掉到另一個項目D中,如下所示:A→D→B→A→C→A→D然後先釋放D然後A釋放B和C. –

回答

1

解決這個問題的唯一辦法是去除A,B和C的Maven之間的循環依賴強制執行不存在循環依賴。要刪除圈子,你將有一個對項目A,B和C的共用部分分解出到一個新的模塊D.因此,如果您選擇打開A和B之間的循環,因此他們只會依靠d 。

這樣你的釋放過程也將更加簡單,因爲你可以在同一作業釋放一切。