2012-03-06 95 views
1

我對一個項目使用Maven,其中一個子項目依賴於另一個子項目。當我執行mvn clean install時,它會按照正確的順序(首先依賴項,然後是需要它的項目)構建它們,但是在具有依賴項的項目中,它將從遠程回購庫下載,而不是使用我剛剛構建的項目。爲什麼我的多模塊Maven項目不能安裝某些模塊?

看着我的日誌,我發現它沒有安裝依賴項,即使我使用的是install目標。編輯:它確實安裝了一些依賴項,只是不是我想要的。

我該如何解決這個問題?

+0

參見[訪問在離線模式下的本地存儲庫(http://stackoverflow.com/questions/9576345/accessing-local-repository-in-offline-mode/9579997#9579997) – 2012-03-06 17:25:48

+0

@ajozwik這可能會幫助,但我主要就是爲什麼它從遠程回購中解脫出來。 – 2012-03-06 17:30:48

回答

2

事實證明,Maven按照它們在superpom中定義的順序安裝模塊。

我的是這樣的:

<modules> 
    <!-- module-a depends on module-b --> 
    <module>module-a</module> 
    <module>module-b</module> 
</modules> 

給我們這個構建順序:

  1. 建立module-b(作爲依賴)
  2. 構建module-a
  3. 安裝module-a
  4. 安裝module-b

由於module-b未在第2步安裝,因此它從遠程回購下載module-b,然後構建失敗,因爲它是錯誤的版本。