項目的模塊化有利於任務分工,後期維護,易擴展,模塊還可以獨立成服務單獨部署等;
我用的maven插件是m2e,相信大部分人在eclipse裝的也是m2e插件;廢話不說,直接開始:
菜單選擇新建maven project,注意選擇創建一個簡單工程,如下圖紅圈所示,因為我們要創建的是packaging類型為pom的maven項目,自帶的archetype裡貌似沒有對應的類型,反正我是沒找到。
接著點擊next,在packaging選項裡選擇pom,然後輸入必要的信息即可,如下圖:
這時候我們的pom.xml文件是這樣的:
<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即可;
鼠標右鍵父工程,選擇創建maven module;
創建完各個模塊之後,父模塊與子模塊的POM配置文件如下,很好理解:
父模塊POM配置:
<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