我試圖將幾個子模塊項目轉換爲Maven,但我想我有點困惑如何做到這一點。有點有點Maven的雙向依賴或我只是困惑?
這是一個包含war
包裝的webapp。因此,這裏是我們的項目結構:
core
(帶彈簧,休眠等)module1
module2
module3
每module
取決於core
,因爲core
提供數據庫訪問和一些基本功能。 Maven中的話,我會把
<dependency>
<groupId>a.b.c</groupId>
<artifactId>core</artifactId>
</dependency>
每module
的pom.xml
內。
下一個:module3
也取決於module1
。所以,我把
<dependency>
<groupId>a.b.c</groupId>
<artifactId>module1</artifactId>
</dependency>
module3
的pom.xml
內。
直到這裏的一切看起來非常簡單和正常的,我認爲(?!)。 現在混亂的東西:
core
是Web應用程序。所以最後我會編譯core
項目。- 那些
modules
將爲Web應用- 一些額外的功能,這意味着:
core
某種程度上取決於每個module
- 一些額外的功能,這意味着:
- 將來的版本可能不包含
module2
而是module2b
,這實際上繼承的類module2
,但可以添加/覆蓋某些功能
此刻我們有一個屬性(和一個額外的xml)f其中包含core
項目中的modules
。這個文件的內容告訴Spring爲Controllers和Beans掃描更多的包。
另外有一個Ant任務,這與文件系統路徑的工作原理:
<path id="libs.projects">
<dirset dir="${basedir}/../.">
<include name="libprefix*"/>
<exclude name="moduleprefix*"/>
</dirset>
</path>
它掃描與libprefix
和moduleprefix
和編譯他們開始文件夾。之後,它會從目標目錄和其他一些文件(html,jsp,js,css等)中生成jar
文件,並將它們複製到core
項目目錄中。
的問題是很清楚,我想:
- 什麼(特別是關於那些未來的版本)
- 是雙向的項目依賴正確的方式優化項目佈局?
也許有其他方式使用Maven父模塊與pom
包裝?我從來沒有使用過這個,也不知道它的能力。但我希望你們知道如何解決這個問題;)
謝謝!
聽起來不錯。所以,如果我理解正確:**一** **與Spring(和網絡的東西)項目,這取決於具有休眠的'jar'項目'數據庫'。然後,每個「模塊」將取決於「數據庫」項目。 「戰爭」項目將取決於所有需要的「模塊」? ...然後,如果我們想要第二次發佈具有不同配置的應用程序,我們將創建第二個「war」項目,該項目取決於所需的所有模塊。對? –
但是現在還剩下一件事:每個'module'都有自己的'Entities'和'DAOs'。這意味着它們必須包含在'persistence.xml'中。但我不想將它們包含在'數據庫'項目中。數據庫項目**應該環顧這些類的其他模塊。這可能嗎? –
這是否有幫助:http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/orm.html#orm-jpa-multiple-pu –