2014-01-28 72 views
0

根據Maven lifecycle,mvn install將「將軟件包安裝到本地存儲庫中,作爲本地其他項目中的依賴項」。本地存儲庫然後存儲我遠程下載的所有罐子。Maven如何處理模塊之間的依賴關係?

我的模塊與其他模塊有依賴關係。當我運行mvn package時,沒有任何內容存儲在我的本地存儲庫中,但依賴關係似乎得到滿足。那麼Maven如何處理模塊間的依賴關係呢? Maven是否從構建的目標目錄引用每個模塊的罐子,還是從另一個位置獲取它們?

回答

1

科瑞,

你是正確的,Maven的文檔要嚴格意味着對mvn compile

parent_pom/ 
    subA/ 
    pom.xml 
    subB/ 
    pom.xml # depends on subA 

蘇巴以來尚未推出到本地回購應該失敗。

Maven使用reactor來欺騙構建,以查看相同構建中較早子模塊的目錄target

超出此特定問題的範圍,maven-reactor-plugin是Maven最不透明的部分之一,但如果您掌握它,也是最強大的部分之一。你會很好地閱讀它。

希望有所幫助。

1

這取決於您正在執行的階段。在compile之前,Maven會失敗,因爲沒有編譯類。在compilepackage之間,使用target/classes。對於package及更高版本,使用target/artifactId-version.jar

相關問題