2013-01-09 37 views
0

我想問你以下問題的幫助。Maven:家長聚合器就是項目本身

考慮三個項目A,B,C。項目B和C是獨立的模塊(導致罐子)。這些項目Bcan可以靠自己生活。項目A在某種程度上是特定的,我需要它表現爲模塊(對於項目B,C)的父項。當我構建項目A時,我也需要構建B,C。 Hovewer,A項目擁有自己的源代碼,當我構建它時,我希望它也能生成jar文件。據我所知,這在maven世界裏有點矛盾。我只需要我的父母管理模塊,同時使用jar類型聲明它。

到目前爲止,我還沒有找到任何有關如何管理這個問題的資源,所以希望你們會提出一些想法。提前致謝。

回答

3

這違反了單一責任原則。項目A應該是一個聚合器,或者它應該在構建之後產生一個工件。所以你應該將項目A的來源分解爲項目D並讓B和C依賴於D.

如果你堅持繼承對A中包含的源的依賴關係,那麼我建議你應該創建另一個項目E該層次則應該是這樣的:

A 
+-D 
+-E 
    +-B 
    +-C 

新的聚合誤差應再有D.依賴

+0

不過,是不是有任何其他方式如何實現類似的行爲(可能通過省略節在父母但不知何故迫使子項目建設)? –

+0

@MatthewLowe你可以在同一個文件夾中有兩個poms。但我認爲這很醜陋。單一責任原則有其代價。但是,當你的項目增長時,這將得到回報。 – SpaceTrucker