项目的模块化有利于任务分工,后期维护,易扩展,模块还能够独立成服务单独部署等;前端
我用的maven插件是m2e,相信大部分人在eclipse装的也是m2e插件;废话不说,直接开始:git
菜单选择新建maven project,注意选择建立一个简单工程,以下图红圈所示,由于咱们要建立的是packaging类型为pom的maven项目,自带的archetype里貌似没有对应的类型,反正我是没找到。github
接着点击next,在packaging选项里选择pom,而后输入必要的信息便可,以下图:web
这时候咱们的pom.xml文件是这样的:spring
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>cn.edu.hdu.mm</groupId> <artifactId>multi-module</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>pom</packaging> <name>multi-module</name> <description>multi module projects.</description> </project>
这里打算简单的建立一个web项目做为示例,按层划分;其实复杂点的项目是能够划分红多个子系统模块、多个服务模块,模块之间的通讯能够经过jms、webservice等方式。数据库
那么,咱们就开始简单的建立common,dao,service,web几个模块吧, 这里,除了web模块的packaging类型是war,其它的都是jar,也就是说,在建立这些模块的时候,web模块选择的archetype为webapp,其它的选quickstart便可;apache
鼠标右键父工程,选择建立maven module;浏览器
建立完各个模块以后,父模块与子模块的POM配置文件以下,很好理解:tomcat
父模块POM配置:mybatis
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>cn.edu.hdu.mm</groupId> <artifactId>multi-module</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>pom</packaging> <name>multi-module</name> <description>multi module projects.</description> <modules> <module>multi-module-common</module> <module>multi-module-dao</module> <module>multi-module-service</module> <module>multi-module-web</module> </modules> </project>
其中的一个子模块POM配置:
<?xml version="1.0"?> <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>cn.edu.hdu.mm</groupId> <artifactId>multi-module</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <artifactId>multi-module-common</artifactId> <name>multi-module-common</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> </project>
在这个demo中,模块之间的依赖关系以下:
web依赖service,service依赖dao,dao依赖common模块;
配置依赖关系很简单,好比咱们须要在dao模块里配置其依赖common模块,只需在pom添加以下代码片断,跟平时的添加依赖同样:
<dependency> <groupId>${project.groupId}</groupId> <artifactId>multi-module-common</artifactId> <version>${project.version}</version> </dependency>
注意这里的${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,添加了一个用户增删改查模块,前端页面就没写了~代码见最后的连接。
工程目录大体以下:
代码写完以后,添加数据库(脚本在工程里),而后能够在父工程的pom.xml文件里添加tomcat7-maven-plugin插件配置,右键执行tomcat:run命令,运行war包,也能够右键调试工程,debug As...
执行命令,可看到以下日志,经过日志能够看到具体的执行过程:
执行完命令后,浏览器地址输入http://localhost:8080/multi-module-web/user/getUserList.do?pageNo=0&pageSize=5,访问controller,访问成功:
以下是代码,简单的写了下,仅供参考。
https://github.com/peterchenhdu/Demos/tree/master/multi-module