博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
maven工程模块化
阅读量:7141 次
发布时间:2019-06-28

本文共 3922 字,大约阅读时间需要 13 分钟。

前言

项目的模块化有利于任务分工,后期维护,易扩展,模块还可以独立成服务单独部署等;

创建packaging类型为POM的父项目

我用的maven插件是m2e,相信大部分人在eclipse装的也是m2e插件;废话不说,直接开始:

菜单选择新建maven project,注意选择创建一个简单工程,如下图红圈所示,因为我们要创建的是packaging类型为pom的maven项目,自带的archetype里貌似没有对应的类型,反正我是没找到。

接着点击next,在packaging选项里选择pom,然后输入必要的信息即可,如下图:

这时候我们的pom.xml文件是这样的:

4.0.0
cn.edu.hdu.mm
multi-module
0.0.1-SNAPSHOT
pom
multi-module
multi module projects.

创建各个子模块

这里打算简单的创建一个web项目作为示例,按层划分;其实复杂点的项目是可以划分成多个子系统模块、多个服务模块,模块之间的通信可以通过jms、webservice等方式。

那么,我们就开始简单的创建common,dao,service,web几个模块吧, 这里,除了web模块的packaging类型是war,其它的都是jar,也就是说,在创建这些模块的时候,web模块选择的archetype为webapp,其它的选quickstart即可;

鼠标右键父工程,选择创建maven module;

创建完各个模块之后,父模块与子模块的POM配置文件如下,很好理解:

父模块POM配置:

4.0.0
cn.edu.hdu.mm
multi-module
0.0.1-SNAPSHOT
pom
multi-module
multi module projects.
multi-module-common
multi-module-dao
multi-module-service
multi-module-web

其中的一个子模块POM配置:

4.0.0
cn.edu.hdu.mm
multi-module
0.0.1-SNAPSHOT
multi-module-common
multi-module-common
http://maven.apache.org
UTF-8
junit
junit
3.8.1
test

配置各个模块之间的依赖关系

在这个demo中,模块之间的依赖关系如下:

web依赖service,service依赖dao,dao依赖common模块;

配置依赖关系很简单,比如我们需要在dao模块里配置其依赖common模块,只需在pom添加如下代码片段,跟平时的添加依赖一样:

${project.groupId}
multi-module-common
${project.version}

注意这里的${project.groupId}和${project.version}指的是本模块的groupId和version,因为该模块和multi-module-common模块的共同父模块为multi-module,其groupId和version都继承自multi-module,所以我们这里直接写本模块的groupId和version即可。

开始开发程序

完成以上配置后,就可以开始开发我们的程序了,往common模块写一些公共的东西,dao模块访问数据源,service模块业务需求,web可以写一些jsp,action、controller等;

这里,我简单的写了个spring + spring mvc + mybatis的demo,添加了一个用户增删改查模块,前端页面就没写了~代码见最后的链接。

工程目录大致如下:

运行war包,调试等

代码写完之后,添加数据库(脚本在工程里),然后可以在父工程的pom.xml文件里添加tomcat7-maven-plugin插件配置,右键执行tomcat:run命令,运行war包,也可以右键调试工程,debug As...

执行命令,可看到如下日志,通过日志可以看到具体的执行过程:

[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO] 
[INFO] multi-module
[INFO] multi-module-common
[INFO] multi-module-dao
[INFO] multi-module-service
[INFO] multi-module-web Maven Webapp
[INFO] 
[INFO] Using the builder org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder with a thread count of 1
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building multi-module 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] >>> tomcat-maven-plugin:1.1:run (default-cli) @ multi-module >>>
[INFO] 
[INFO] <<< tomcat-maven-plugin:1.1:run (default-cli) @ multi-module <<<
[INFO] 
[INFO] --- tomcat-maven-plugin:1.1:run (default-cli) @ multi-module ---
[INFO] Skipping non-war project
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building multi-module-common 0.0.1-SNAPSHOT ..........................................

执行完命令后,浏览器地址输入http://localhost:8080/multi-module-web/user/getUserList.do?pageNo=0&pageSize=5,访问controller,访问成功:

本文转自风一样的码农博客园博客,原文链接:http://www.cnblogs.com/chenpi/p/5987332.html,如需转载请自行联系原作者

你可能感兴趣的文章
创业找投资,你要警惕的三种人---情商培养
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
Z字形扫描(201412-2)
查看>>
linux rpm安装webmin
查看>>
DDOS***原理与防护
查看>>
懒加载 与 富文本编辑器 的 相爱相杀
查看>>
我的友情链接
查看>>
java转换是json需要的jar包导致的问题,
查看>>
mac安装brew和nginx
查看>>
技术博客
查看>>
关于ssh远程登录太慢的解决方法
查看>>
子类化QMainWindows
查看>>
Windows完成端口 IOCP模型(一)
查看>>
修改roo的密码 虚拟机vmware8.04 Centos 6.3
查看>>
Struts2 注解
查看>>
有关xerosploit运行报错问题的有效解决方案
查看>>
ABP官方文档翻译 1.4 启动配置
查看>>
js框架简明
查看>>
Java volatile 关键字
查看>>