一僻澎、項(xiàng)目結(jié)構(gòu)
multi-module-parent是主工程貌踏,里面包含兩個(gè)模塊(Module):
module-web是應(yīng)用層,用于界面展示窟勃,依賴(lài)于module-core參的服務(wù)祖乳。
module-core層是服務(wù)層,用于給web層提供服務(wù)秉氧。
跟java的package類(lèi)似眷昆,一般是按照的功能模塊分module,比如:sso/cas/portal/activity/system谬运,具體可根據(jù)需要
以上兩種方式都可以隙赁,現(xiàn)在更多的應(yīng)該是傾向第一種按照功能來(lái)解耦,module前期可以配置成jar梆暖,后期也可以建立獨(dú)有的頁(yè)面伞访,獨(dú)立的站點(diǎn),通過(guò)子域名的方式訪問(wèn)轰驳,各個(gè)功能模塊解耦厚掷,趨向微服務(wù)架構(gòu)
二、構(gòu)建項(xiàng)目
2.1 Parent Project
新建一個(gè)空白標(biāo)準(zhǔn)maven project(不要選擇Create from archetype選項(xiàng))
填寫(xiě)項(xiàng)目坐標(biāo)级解,得到一個(gè)標(biāo)準(zhǔn)的maven項(xiàng)目冒黑,因?yàn)樵擁?xiàng)目是作為一個(gè)Parent project存在的,可以直接刪除src文件夾(父文件下只有自己的pom文件和模塊文件)勤哗。
2.2 增加module-web模塊(Module)
選擇從archetype創(chuàng)建(選擇webapp選項(xiàng))
groupId和version繼承自Parent project抡爹,這里只需要填寫(xiě)artifactId即可。
注意:這里Add as module to
有的人會(huì)刪除芒划,如果刪除了創(chuàng)建的模塊文件就會(huì)和父模塊(parent)同級(jí)了冬竟,這里看個(gè)人喜歡欧穴。文件夾結(jié)構(gòu)怎么樣都行,重要的pom文件里面的父子結(jié)構(gòu)要設(shè)置正確泵殴。
2.3增加module-core模塊
用同樣的方法創(chuàng)建module-core模塊(不過(guò)該模塊是一個(gè)空白maven標(biāo)準(zhǔn)項(xiàng)目涮帘,不要從archetype創(chuàng)建)
2.4 得最終項(xiàng)目結(jié)構(gòu)
2.5 關(guān)鍵幾點(diǎn)
1,Parent project和各個(gè)Module擁有獨(dú)立pom文件
2笑诅,Parent project用于組織不同的Module调缨,不實(shí)現(xiàn)邏輯
3,Module集成Parent project的groupId和version吆你,Module只需要指定自己的artifactId即可弦叶。
三、添加項(xiàng)目依賴(lài)
上面的操作是添加web對(duì)core模塊的依賴(lài)早处,完成上述操作后core中public的類(lèi)已經(jīng)在web模塊中可見(jiàn)了湾蔓,如果不加模塊依賴(lài)瘫析,web下的jsp用不了core里面的方法砌梆,會(huì)抱錯(cuò):
此外還需要在web的pom文件中增加對(duì)core的依賴(lài),這個(gè)主要是為了web里面的Java模塊調(diào)用core的服務(wù):
以上贬循,項(xiàng)目依賴(lài)的添加已經(jīng)完成咸包。
四、開(kāi)始編程
4.1 module-core模塊編程
在core模塊中增加一個(gè)Service類(lèi)(SimpleService.java):
4.2 module-web模塊編程
修改web下的jsp文件杖虾,調(diào)用core服務(wù):
五烂瘫、運(yùn)行
如果想了解熱部署和繼承關(guān)系等配置請(qǐng)看:
IntelliJ Idea14 創(chuàng)建Maven多模塊項(xiàng)目,多繼承奇适,熱部署配置總結(jié)(二)