一。Idea构建maven多模块项目
1。创建maven项目--创建父模块
【1】。File->New->Module...
【2】。点击next,填写:GroupId,ArtifactId和Version
注:ArtifactId即为项目名字。
【3】。点击next,添加参数archetypeCatalog=internal(不加该参数,在maven生成骨架时会非常慢)
注:
【4】点击next,填写module name(模块名称)->finish
【5】。项目结构如下所示:
2。创建module子模块
【1】右击项目-》new Module..
【2】新建Module同1创建父模块。
修改点:
(1)。ArtifactId:ssm-web
(2)。Modual name:ssm-web
最终项目架构如下所示:
3。每个模块中依赖pom.xml配置
maven模块结构图:
---web-ssm
|--pom.xml(pom)
|--ssm-web
|--pom.xml(war)
|--ssm-service
|--pom.xml(jar)
|--ssm-dao
|--pom.xml(jar)
|--ssm-model
|--pom.xml(jar)
注意:括号中标识的是模块的打包(packaging类型)。父项目只能为pom,子项目根据包含内容具体考虑打jar/war包。
maven依赖传递性:
|-ssm-dao模块:负责与数据库交互,持久层。依赖于model层(ssm-model)
ssm-dao->依赖->ssm-model
|-ssm-service模块:负责业务逻辑处理,事务控制层。调用dao传递处理结果。依赖于dao层(ssm-dao)。
而dao依赖于model层。所以service依赖于model层(ssm-model)
ssm-service->依赖->ssm-dao->依赖->ssm-model
|-ssm-web模块:负责与客户端交互,控制层。主要为springmvc的controller类/struts的action类。
依赖于service层。依赖于dao层,依赖于model层。(依赖传递性)
ssm-web->依赖->ssm-service->依赖->ssm-dao->依赖->ssm-model
|-ssm-model模块:独立模块,不依赖于任何其他模块
上述:除非配置了特殊的依赖scope。否则依赖均具有传递性。
【1】。ssm-web子模块
1 2 35 6 10web-ssm 7com.yufeng.web 81.0-SNAPSHOT 94.0.0 11 12com.yufeng.web 13ssm-web 14war 15 16ssm-web Maven Webapp 17 18http://www.example.com 19 2021 25 26UTF-8 221.7 231.7 2427 52 5328 33 34junit 29junit 304.11 31test 3235 39 40com.yufeng.web 36ssm-model 37${project.version} 3841 45 46com.yufeng.web 42ssm-service 43${project.version} 4447 51com.yufeng.web 48ssm-dao 49${project.version} 5054 89ssm-web 5556 8857 8758 61 62maven-clean-plugin 593.0.0 6063 66maven-resources-plugin 643.0.2 6567 70maven-compiler-plugin 683.7.0 6971 74maven-surefire-plugin 722.20.1 7375 78maven-war-plugin 763.2.0 7779 82maven-install-plugin 802.5.2 8183 86maven-deploy-plugin 842.8.2 85
【2】。ssm-service子模块
1 2 35 6 10web-ssm 7com.yufeng.web 81.0-SNAPSHOT 94.0.0 11 12com.yufeng.web 13ssm-service 14jar 15 16ssm-service Maven Webapp 17 18http://www.example.com 19 2021 25 26UTF-8 221.7 231.7 2427 46 4728 33 34junit 29junit 304.11 31test 3235 39 40com.yufeng.web 36ssm-model 37${project.version} 3841 45com.yufeng.web 42ssm-dao 43${project.version} 4448 83ssm-service 4950 8251 8152 55 56maven-clean-plugin 533.0.0 5457 60maven-resources-plugin 583.0.2 5961 64maven-compiler-plugin 623.7.0 6365 68maven-surefire-plugin 662.20.1 6769 72maven-war-plugin 703.2.0 7173 76maven-install-plugin 742.5.2 7577 80maven-deploy-plugin 782.8.2 79
【3】。ssm-dao子模块
1 2 35 6 10web-ssm 7com.yufeng.web 81.0-SNAPSHOT 94.0.0 11 12com.yufeng.web 13ssm-dao 14jar 15 16ssm-dao Maven Webapp 17 18http://www.example.com 19 2021 25 26UTF-8 221.7 231.7 2427 40 4128 33 34junit 29junit 304.11 31test 3235 39com.yufeng.web 36ssm-model 37${project.version} 3842 77ssm-dao 4344 7645 7546 49 50maven-clean-plugin 473.0.0 4851 54maven-resources-plugin 523.0.2 5355 58maven-compiler-plugin 563.7.0 5759 62maven-surefire-plugin 602.20.1 6163 66maven-war-plugin 643.2.0 6567 70maven-install-plugin 682.5.2 6971 74maven-deploy-plugin 722.8.2 73
【4】。ssm-model子模块
1 2 35 6 10web-ssm 7com.yufeng.web 81.0-SNAPSHOT 94.0.0 11 12com.yufeng.web 13ssm-model 14jar 15 16ssm-model Maven Webapp 17 18http://www.example.com 19 2021 25 26UTF-8 221.7 231.7 2427 34 3528 33junit 29junit 304.11 31test 3236 71ssm-model 3738 7039 6940 43 44maven-clean-plugin 413.0.0 4245 48maven-resources-plugin 463.0.2 4749 52maven-compiler-plugin 503.7.0 5153 56maven-surefire-plugin 542.20.1 5557 60maven-war-plugin 583.2.0 5961 64maven-install-plugin 622.5.2 6365 68maven-deploy-plugin 662.8.2 67
【5】。web-ssm父模块(聚合子模块modules)
1 2 35 4.0.0 6 7com.yufeng.web 8web-ssm 91.0-SNAPSHOT 10 11pom 12 13 1415 20 21ssm-web 16ssm-service 17ssm-dao 18ssm-model 19web-ssm Maven Webapp 22 23http://www.example.com 24 2526 27 31 32UTF-8 281.7 291.7 3033 40 4134 39junit 35junit 364.11 37test 3842 77web-ssm 4344 7645 7546 49 50maven-clean-plugin 473.0.0 4851 54maven-resources-plugin 523.0.2 5355 58maven-compiler-plugin 563.7.0 5759 62maven-surefire-plugin 602.20.1 6163 66maven-war-plugin 643.2.0 6567 70maven-install-plugin 682.5.2 6971 74maven-deploy-plugin 722.8.2 73
上述:Maven多模块项目已经搭建完成。
下述:整合spring+springmvc+mybatis。
参考网址:http://www.imooc.com/article/19789