目录

maven创建多模块项目过程

以生活应用lifeapp为例

创建项目

创建项目lifeapp

进到一个目录下

cd /Users/guanxianghui/Documents/05.be/

执行

mvn archetype:generate -DgroupId=com.shhxzq.fin -DartifactId=lifeapp -Dversion=1.0.0-SNAPSHOT -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

执行后创建lifeapp项目,进入目录

cd lifeapp

执行

vim pom.xml

<packaging>jar</packaging>

改成

<packaging>pom</packaging>

再删除src目录

rm -rf src

创建模块lifeapp-biz

进入目录

cd lifeapp

执行

mvn archetype:generate -DgroupId=com.shhxzq.fin -DartifactId=lifeapp-biz -Dpackage=com.shhxzq.fin.lifeapp.biz -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

执行后创建lifeapp-biz模块,修改文件

vim pom.xml
删除<groupId>com.shhxzq.fin</groupId>
删除<version>1.0-SNAPSHOT</version>

创建模块lifeapp-dao

进入目录

cd lifeapp

执行

mvn archetype:generate -DgroupId=com.shhxzq.fin -DartifactId=lifeapp-dao -Dpackage=com.shhxzq.fin.lifeapp.dao -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

执行后创建lifeapp-dao模块,修改文件

vim pom.xml
删除<groupId>com.shhxzq.fin</groupId>
删除<version>1.0-SNAPSHOT</version>

创建模块lifeapp-model

进入目录

cd lifeapp

执行

mvn archetype:generate -DgroupId=com.shhxzq.fin -DartifactId=lifeapp-model -Dpackage=com.shhxzq.fin.lifeapp.model -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

执行后创建lifeapp-model模块,修改文件

vim pom.xml
删除<groupId>com.shhxzq.fin</groupId>
删除<version>1.0-SNAPSHOT</version>

创建模块lifeapp-remote

进入目录

cd lifeapp

执行

mvn archetype:generate -DgroupId=com.shhxzq.fin -DartifactId=lifeapp-remote -Dpackage=com.shhxzq.fin.lifeapp.remote -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

执行后创建lifeapp-remote模块,修改文件

vim pom.xml
删除<groupId>com.shhxzq.fin</groupId>
删除<version>1.0-SNAPSHOT</version>

创建模块lifeapp-service

进入目录

cd lifeapp

执行

mvn archetype:generate -DgroupId=com.shhxzq.fin -DartifactId=lifeapp-service -Dpackage=com.shhxzq.fin.lifeapp.service -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

执行后创建lifeapp-service模块,修改文件

vim pom.xml
删除<groupId>com.shhxzq.fin</groupId>
删除<version>1.0-SNAPSHOT</version>

创建模块lifeapp-web

进入目录

cd lifeapp

执行

mvn archetype:generate -DgroupId=com.shhxzq.fin -DartifactId=lifeapp-web -Dpackage=com.shhxzq.fin.lifeapp.web -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false

执行后创建lifeapp-web模块,修改文件

vim pom.xml
删除<groupId>com.shhxzq.fin</groupId>
删除<version>1.0-SNAPSHOT</version>

设置模块间的依赖

view pom.xml 看到 lifeapp项目包括以下六个模块

  <modules>
    <module>lifeapp-biz</module>
    <module>lifeapp-dao</module>
    <module>lifeapp-remote</module>
    <module>lifeapp-model</module>
    <module>lifeapp-web</module>
    <module>lifeapp-service</module>
  </modules>

分析各个模块之间的依赖

lifeapp-model -> null(不依赖任何一个模块)
lifeapp-dao -> lifeapp-model
lifeapp-service -> lifeapp-model
lifeapp-biz -> lifeapp-service
            -> lifeapp-dao
            -> lifeapp-remote
lifeapp-remote -> lifeapp-model
lifeapp-web -> lifeapp-biz

在各个模块中按以下形式,添加依赖模块

<dependency>
  <groupId>com.shhxzq.fin</groupId>
  <artifactId>lifeapp-XXX</artifactId>
  <version>${project.version}</version>
</dependency>

到这里基础项目配置完毕

mvn打包项目

进入目录

cd lifeapp

执行

mvn clean install

输出

[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] lifeapp ............................................ SUCCESS [  0.379 s]
[INFO] lifeapp-model ...................................... SUCCESS [  2.157 s]
[INFO] lifeapp-service .................................... SUCCESS [  0.363 s]
[INFO] lifeapp-dao ........................................ SUCCESS [  0.301 s]
[INFO] lifeapp-biz ........................................ SUCCESS [  0.299 s]
[INFO] lifeapp-remote ..................................... SUCCESS [  0.322 s]
[INFO] lifeapp-web Maven Webapp ........................... SUCCESS [  0.423 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.380 s
[INFO] Finished at: 2016-09-05T16:47:06+08:00
[INFO] Final Memory: 22M/165M
[INFO] ------------------------------------------------------------------------

看到lifeapp项目编译打包成功

发布项目

将war包拷贝到tomcat的webapps中,启动tomcat,访问http://localhost:8080/lifeapp-web/,浏览器上看到如下内容,说明访问正常

Hello World!