我有一個Maven項目,其中包含「核心」和「網絡」部分。我試圖將其轉換爲多個模塊。Maven多模塊項目中的自動裝配依賴關係
我已經採取了「網絡」包,並把它們放到新的項目。我已經將核心項目添加爲依賴項,並且我可以在Eclipse中引用它的類。當我構建它時,「核心」項目在「web」項目中的WEB-INF\lib
中正確顯示。
在「web」項目中,來自「核心」項目的類爲@Autowired
時出現問題。
在這種特殊情況下,我將服務類從「核心」自動裝配到「web」項目中的一個Web服務類中。如果我在我的「web」應用程序配置中將核心服務所在的軟件包添加到我的context:component-scan
中,它會找到該服務,但是該服務會引用一個存儲庫,該存儲庫引用一個實體,該實體正在尋找一個實體管理器工廠,已經在我的「核心」項目的應用程序上下文中進行了配置。
所以看來,「核心」項目中的context:component-scan
也許沒有發生?或者,也許所選的課程沒有提供給「網絡」項目?
我對多模塊項目是全新的,所以如果任何人都可以讓我開始正確的方向來解決這個問題,我將不勝感激。
我在Eclipse中使用m2e和Run Jetty Run插件(如果有的話);然而,當我從命令行執行mvn jetty:run
時,我似乎遇到同樣的問題。
感謝您的回覆。這似乎工作。如果你不介意的話,還有一個很快的問題......這是這種模塊化的普遍接受的解決方案嗎?我所要問的唯一原因是因爲如果我要分發我的「核心」項目,有人必須至少知道我的應用程序上下文的名稱才能正常工作。這對我來說不是問題,因爲這都是內部的,但我想以最脆弱的方式做到這一點。是否存在應該在其他模塊中加載的應用程序上下文的特定命名約定? – Luke 2013-04-08 14:38:40
不確定是否會導出我的應用程序上下文。最好提供一個很好的例子,說明如何用核心庫公開的主要服務創建這樣的上下文,並讓消費者處理它。我認爲這與明確記錄的API一起應該做到這一點。 – 2013-04-08 15:27:32
太棒了!再次感謝。 – Luke 2013-04-08 17:25:56