1、maven自動管理java包
2、maven構建多個模塊,結構清晰,管理方便。
3、使用mybatis持久化框架,手動編寫更多的sql語句
一、測試環(huán)境原理
mysql5.5 + myeclipse2014 +navicate + jdk1.7 + tomcat 7
1、模塊聚合
隨著項目越來越大,功能越來越多,更多的時候需要模塊管理,例如本實例分為model persist service web?
maven的聚合功能將多個模塊統(tǒng)一管理,一次構建。
聚合pom僅僅是幫助模塊聚合的工具,本身并沒有實質(zhì)內(nèi)容

module 就是各模塊名稱
通過構建一個打包方式為pom的maven項目,通過聲明多個module,來實現(xiàn)聚合。
packaging:pom 否則無法聚合構建
2、pom繼承
通過在父pom中聲明來實現(xiàn)子pom中的復用和消除。
打包方式packging:pom,因此可以和聚合使用同一個配置文件。


dependencyManagement 、pluginManagement,讓子pom繼承父pom的同時,又保證了子pom的靈活性,并沒有實際引入子pom中,但約束了子pom的依賴。
二、項目目錄結構

各項目功能介紹:
ssm-root是maven-project是父級maven,管理整個項目
ssm-model是數(shù)據(jù)模型模塊
ssm-persist是持久化模塊,使用的mybatis,則有映射的接口和對應的xml配置文件
ssm-util是工具模塊
ssm-service是業(yè)務服務模塊,是對數(shù)據(jù)操作接口定義和實現(xiàn)的模塊
ssm-web是核心業(yè)務處理層,是springmvc的controller實現(xiàn)處
三、項目搭建
首先eclipse得安裝maven,教程https://jingyan.baidu.com/article/295430f136e8e00c7e0050b9.html
1、創(chuàng)建父級maven-project
新建--->maven-project-->simple-->輸入名稱,創(chuàng)建完畢。




注意:
groupId定義當前模塊隸屬的實際Maven項目, 表示方式與Java包類似? ?
:?groupId不應直接對應項目隸屬的公司/組織(一個公司/組織下可能會有很多的項目).
artifactId定義實際項目中的一個Maven模塊? ? ?
:?推薦使用項目名作為artifactId前綴, 如:commons-lang3以commons作為前綴(因為Maven打包默認以artifactId作為前綴)
version定義當前項目所處版本(如1.0-SNAPSHOT、4.2.7.RELEASE、1.2.15、14.0.1-h-3?等)? ? ? ?
:Maven版本號定義約定:?<主版本>.<次版本>.<增量版本>-<里程碑版本>
packaging定義Maven項目打包方式, 通常打包方式與所生成構件擴展名對應? ? ??
:有jar(默認)、war、pom、maven-plugin等.
classifier用來幫助定義構建輸出的一些附屬構件(如javadoc、sources)? ? ?
: 不能直接定義項目的classifier(因為附屬構件不是由項目默認生成, 須有附加插件的幫助)
2、創(chuàng)建子maven-model
注意:父maven管理所有的子maven項目
在父maven中選擇新建--->選擇maven-model-->選擇quickstart--->輸入相關參數(shù)



注意:此時,在父級maven中已經(jīng)含有了子maven-model項目

重復上述步驟,依次創(chuàng)建persist、service、util,
對于web項目,在filter時,輸入web,選擇相應maven管理下的web app?

注意:創(chuàng)建完web項目后,我的該web項目會自動添加maven webapp 然而在pom.xml中使用的項目名稱是web,于是對該項目重命名,使用reactor--rename,當修改了name后,發(fā)現(xiàn)子項目web消失了,于是從新創(chuàng)建model,選擇web,eclipse會自動將之前創(chuàng)建的web項目載入。
第一次創(chuàng)建后,沒有修改,在maven clean時候,報錯,說在找不到web的pom.xml。具體原因,未確定。
關于依賴。
參考文章:http://blog.csdn.net/zjf280441589/article/details/53044308