根據Maven lifecycle,mvn install
將「將軟件包安裝到本地存儲庫中,作爲本地其他項目中的依賴項」。本地存儲庫然後存儲我遠程下載的所有罐子。Maven如何處理模塊之間的依賴關係?
我的模塊與其他模塊有依賴關係。當我運行mvn package
時,沒有任何內容存儲在我的本地存儲庫中,但依賴關係似乎得到滿足。那麼Maven如何處理模塊間的依賴關係呢? Maven是否從構建的目標目錄引用每個模塊的罐子,還是從另一個位置獲取它們?
根據Maven lifecycle,mvn install
將「將軟件包安裝到本地存儲庫中,作爲本地其他項目中的依賴項」。本地存儲庫然後存儲我遠程下載的所有罐子。Maven如何處理模塊之間的依賴關係?
我的模塊與其他模塊有依賴關係。當我運行mvn package
時,沒有任何內容存儲在我的本地存儲庫中,但依賴關係似乎得到滿足。那麼Maven如何處理模塊間的依賴關係呢? Maven是否從構建的目標目錄引用每個模塊的罐子,還是從另一個位置獲取它們?
科瑞,
你是正確的,Maven的文檔要嚴格意味着對mvn compile
:
parent_pom/
subA/
pom.xml
subB/
pom.xml # depends on subA
蘇巴以來尚未推出到本地回購應該失敗。
Maven使用reactor
來欺騙構建,以查看相同構建中較早子模塊的目錄target
。
超出此特定問題的範圍,maven-reactor-plugin是Maven最不透明的部分之一,但如果您掌握它,也是最強大的部分之一。你會很好地閱讀它。
希望有所幫助。
這取決於您正在執行的階段。在compile
之前,Maven會失敗,因爲沒有編譯類。在compile
和package
之間,使用target/classes
。對於package
及更高版本,使用target/artifactId-version.jar
。