分享

【Maven3教程】Maven多工程、多模块

 liang1234_ 2016-12-29

项目工程拆分原则?

功能分层拆分、业务功能拆分?下面一个电商项目(Jmall)为例:


功能分层拆分

按照项目功能分层,分为common(java工程)、dao(java工程)、service(java工程)、web(web工程)等


业务功能拆分

按照业务拆分,分为common工程(java工程)、用户中心user(web工程)、商品中心goods(web工程)、订单中心order(web工程)、总web(web工程)



总结对比:

随着业务复杂的增加、按照功能分层的拆分,每个工程会越来越繁重,务必会达到瓶颈。但是按照业务功能的划分,每个模块功能都是一个完整的web功能可以独立运行、开发、协作,同时又能合并成一个总的web的工程,使其组成一个平台,随着业务增加,可以重新拆分新的工程,更好的适应业务整合。推荐按照业务功能进行拆分


本人不善言辞,觉得我说的不对,可以参考其他优秀的项目,例如spring业务按找业务功能进行拆分,如下图:



下面就开始以Jmall为例子按照业务划分的原则,开始搭建maven多工程项目


首先创建一个父工程jmall(pom),用于管理




接下来创建common工程(java工程)





接下来构建user工程(web工程)




依此类推,构建好其他工程,如下图所示:



其中需要注意的是jmall-web工程是用于其他工程合并成总工程的项目


构建好工程之后,首先Install一下,看是否成功:



测试jmall-common的依赖


在jmall-common中新建一个BaseTest的基类,如下图:



在jmall-user工程调用BaseTest,如下图:


首先需要添加jmall-common工程的依赖:



调用如下:



执行结果如下:



合并总的web工程


合并为一个总的web工程,需要借助maven-war-plugin的插件,如下图所示:



需要添加工程依赖,如下图:



jmall-web完整的pom.xml,如下:


<?xml version='1.0'?>
xsi:schemaLocation='http://maven./POM/4.0.0 http://maven./xsd/maven-4.0.0.xsd'
xmlns='http://maven./POM/4.0.0' xmlns:xsi='http://www./2001/XMLSchema-instance'>
4.0.0
org.zhanghua
jmall
0.0.1-SNAPSHOT
org.zhanghua
jmall-web
0.0.1-SNAPSHOT
war
jmall-web Maven Webapp
http://maven.
org.zhanghua
jmall-user
0.0.1-SNAPSHOT
war
org.zhanghua
jmall-goods
0.0.1-SNAPSHOT
war
org.zhanghua
jmall-order
0.0.1-SNAPSHOT
war
junit
junit
3.8.1
test
jmall-web
org.apache.maven.plugins
maven-war-plugin
2.6
org.zhanghua
jmall-user
org.zhanghua
jmall-goods
org.zhanghua
jmall-order

org.mortbay.jetty
jetty-maven-plugin
7.6.15.v20140411
9080
/
org.mortbay.util.URI.charset
UTF-8

接下来,我们执行install,看jmall-web的war是否已经把jmall-user,jmall-user,jmall-goods,jmall-order工程合并进来了,如下图:



如上图所示,合并正确,符合我们的要求.


注意到index.jsp只有一个了,我们每个工程里面都会有index.jsp,但是最后只有一个了,是因为我们jmall-web工程里面有index,会这个jmall-web的为准。


总结:如果多个war相同路径且同名的文件,如果总的web工程里面有,那么总的这个会覆盖分支的,如果总的没有,那么看合并的顺序,保留第一个顺序的文件。


最后通过jetty:run运行成功,如下图:



代码地址:http://git.oschina.net/auhgnahz/jmall


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多