2011-08-31 237 views
2

我有一個多模塊maven項目(maven 2.2.1)。 其中一個模塊是maven插件。Maven 2 - 'mvn test'找不到內部項目插件依賴項

該插件綁定到另一個模塊的編譯階段,並作爲直接依賴項添加以觸發模塊構建的正確的反應器排序。

如果我在根模塊上運行'mvn clean install',使用全新的本地存儲庫,一切正常(構建,測試,安裝)。 (我確切的說我的項目的工件沒有被部署到任何地方,只在本地機器的本地倉庫中安裝)。

但是,如果我刪除我的本地存儲庫,並執行'mvn測試',插件模塊報告缺失?而構建順序是正確的,插件模塊是在模塊使用之前成功構建的?

是否有'maven-plugin'包裝的maven模塊的特殊處理? 我不明白爲什麼其他項目互用模塊依賴關係正確解決,而不是這個特定的!

+0

我不明白你爲什麼需要更改反應堆生成順序?訂單不正確嗎? – khmarbaise

+0

好吧,如果我簡單地將插件綁定到我的客戶端模塊中,那麼插件模塊將在客戶端模塊之後構建,並且在中。 –

+0

這就是我所期望的,導致依賴是不同的。這是您通過<依賴關係>給出的內容,而不是在區域中給出的內容。最簡單的解決方案是將maven模塊上的放入需要的模塊中。這應該處理反應堆訂單將相應地改變。 – khmarbaise

回答

0

問題是,在將插件用作依賴項(或更好地成爲生命週期的一部分)之前,必須先將Maven插件安裝到本地存儲庫中。

+0

感謝您的回答;但是你能否指出我們需要明確指出這一點的maven文檔? –

+0

我不能給你一個直接的鏈接,但我可以解釋它。插件的問題在於,生命週期不像其他jar(庫)那樣使用生命週期,而是使用構建區而不是依賴區來表示它。 – khmarbaise

+0

這是有道理的。我會遵循這個軌道! –