2012-12-05 99 views
0

我有三個獨立的項目(A,B和C)。可以Maven自動構建未找到的依賴項嗎?

項目B和C依賴項目A生成的jar。

如果未找到依賴項,Maven是否有能力自動構建項目A?

到目前爲止我發現的答案是指示製作其他2個項目模塊(我認爲這意味着存儲庫佈局並將它們合併到項目A中)並創建父/子pom。

一個簡單的「不」也是我的結論之一。

看來好像是我在B和C中創建項目A的模塊,maven並不真的那麼喜歡它。 Maven能否在構建時間內看到當前項目範圍之外的項目?對不起,如果這有點羅嗦。

回答

1

如果A,B和C是普通容器項目的模塊,則該方案工作正常。

從根的pom.xml:

<modules> 
<module>project-a</module> 
<module>project-b</module> 
<module>project-c</module> 
</modules> 

其中,「項目一」等都是父文件夾內的Maven項目文件夾的名稱。

父項目必須有<packaging>pom</packaging>才能正常工作。

然後,您可以構建父項目,並按順序構建所有子項,也可以使用其中一個高級Maven反應器標誌。

例如mvn clean install -pl project-b將只生成項目B.

欲瞭解更多信息,請執行mvn --help並從Maven By Example書中閱讀the multi modules chapter


但這個問題:

確實Mav​​en的具有自動構建一個項目的能力,如果 依賴沒有找到?

......答案總是否定的。如果未找到依賴項,Maven會失敗,但它永遠不會決定要構建哪個項目。您負責哪些項目需要構建。

+0

我知道這個場景有效,我有這個場景的工作。我有的問題是,如果B和C不在普通容器中,那將如何工作? B和C在他們自己的獨立容器中。 – ResourceReaper

+0

@JoshGooding這不是如何maven的作品。 Maven不會構建不在當前工作目錄內的項目(或者通過模塊中的相對路徑引用) –

相關問題