項目的模塊化有利於任務分工,後期維護,易擴展,模塊還能夠獨立成服務單獨部署等;前端
我用的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