大型项目中,可能存在多业务、多模块(比如一些公共模块,核心模块,用户管理、充值管理、订单管理等等),需要细分并委派给不同team进行开发。使用maven模块化管理,将各业务进行整合。
本文使用STS4 + JDK8 + Maven3.5.2搭建。
一、创建顶级父工程 (项目名:maven)
选择New > Maven Project:模版选择maven-archetype-quickstart,
创建完后,修改pom.xml中的
如下图:
二、创建顶级web工程 (项目名:web)
在maven项目右键选择New > Maven Module: 模版选择maven-archetype-webapp
三、创建公共模块(commons)、用户管理(userweb)、订单管理(前台:ordersweb,后台:orders)
注意:创建子web项目有两种情况,一种是前后台放一个工程(用户管理),另一种是前后台分离(订单管理)。
commons:在maven项目右键选择New > Maven Module: 模版选择maven-archetype-quickstart
userweb:在maven项目右键选择New > Maven Module: 模版选择maven-archetype-webapp
ordersweb:在maven项目右键选择New > Maven Module: 模版选择maven-archetype-webapp
orders:在maven项目右键选择New > Maven Module: 模版选择maven-archetype-quickstart
此时观察顶级父工程:
包含了我们创建的所有子模块,在sts中看,这些子模块又是一个个独立的项目
再根据路径打开maven:
事实上都被包含在maven目录下
四、配置子模块到父web工程
打开web的pom.xml,并在dependenceies中加入
com.sishuok
customermgr
0.0.1-SNAPSHOT
war
com.sishuok
goodmgrweb
0.0.1-SNAPSHOT
war
在build 》 plugins中加入覆盖规则
org.apache.maven.plugins
maven-war-plugin
3.2.2
com.wzy
userweb
com.wzy
ordersweb
五、测试运行
直接右键父工程maven,选择run 》 maven install,如果build success,则成功。
至此,初步模型已搭建成功。
注意:如果多个war有同路径并且同名的文件,如果总的web里面有,那么总的那个会覆盖分支的;如果总的没有,那么看合并的顺序,留下第一个的文件;顺序就是web项目pom.xml中写的顺序(overlays中定义的)
六、使用jetty插件运行项目
在需要运行的项目中加入:
org.mortbay.jetty
jetty-maven-plugin
8.1.16.v20140903
10
9999
/
8080
60000
contextPath 根据实际修改,以及启动的端口port。
这个是在web项目中配置,配置为跟路径,右击选择
Run Configurations > Maven Build > New Configuration
Base directory选择需要跑的项目,Goals 填: jetty:run
直接浏览器访问即可。
七、初步源码
maven项目