maven项目-多模块

  • 1、maven项目模块介绍
  • 1.1 各个模块作用
  • 1.2 maven项目划分为多模块的好处:
  • 2、各个模块的创建
  • 2.1 maven-parent
  • 2.2 maven-dao
  • 2.3 maven-service
  • 2.4 maven-controller
  • 3、maven模块之间的依赖
  • 拓展

1、maven项目模块介绍

maven项目多模块是用项目层次的划分替代了简单的包层次的划分; 遵循了一个设计模式原则——“高内聚,低耦合”;

maven-parent:

|-- pom.xml (pom)
         |

         |-- maven-dao

         |        |-- pom.xml (jar)

         |

         |-- maven-service

         |        |-- pom.xml (jar)

         |

         |-- maven-controller

                  |-- pom.xml (war)

1.1 各个模块作用

maven-parent模块,是整个项目的基模块,即parent;

maven-dao模块,数据库的访问层(如jdbc操作);(打包类型为jar)

maven-service模块,项目的业务逻辑层;(打包类型为jar)

maven-controller,用于接受请求并响应;(打包类型为jar)

各个模块间的练习是:一个父模块(parent)聚合了几个子模块(maven-dao,maven-service,maven-controller);父模块有一个pom.xml文件,各个子模块也都有一个pom.xml文件。

1.2 maven项目划分为多模块的好处:

详情参考:Maven最佳实践:划分模块

1、更加便于代码重用;

2、每个模块的配置都在各自的pom.xml里,不必把所有的配置都放在总的POM中了;

3、当只在其中一个子模块上工作时,只需要build当前模块即可,不必build整个项目,节省了时间;

2、各个模块的创建

2.1 maven-parent

File—new—Project—maven—Create from archetype(此部分不需要选择)— 照常;

配置pom.xml文件:
1、将pom.xml文件中依赖的jdk版本改为1.8;
2、将文件中的Junit(用于单元测试)版本改为4.12
3、将文件中的<build></build> 标签中的多余的配置删除;

PS:子模块需要在maven-parent的文件夹下创建;

2.2 maven-dao

右键maven-parent—Module—Maven—Create from archetype(选择maven-archetype-quickstart)—照常;

配置pom.xml文件:
1、将pom.xml文件中依赖的jdk版本改为1.8;
2、将文件中的Junit(用于单元测试)版本改为4.12
3、将文件中的<build></build> 标签中的多余的配置删除;

java两个maven模块互相调用怎么办 maven多模块_maven

在java文件夹下创建package,然后再在package下创建新的类class;若main下没有java文件夹则需新建java文件夹然后需要:右键java文件夹——Mark
Directory As ——Source Root;

2.3 maven-service

右键maven-parent—Module—Maven—Create from archetype(选择maven-archetype-quickstart)—照常;

配置pom.xml文件:
1、将pom.xml文件中依赖的jdk版本改为1.8;
2、将文件中的Junit(用于单元测试)版本改为4.12
3、将文件中的<build></build> 标签中的多余的配置删除;

2.4 maven-controller

右键maven-parent—Module—Maven—Create from archetype(选择maven-archetype-webapp)—照常;

配置pom.xml文件:
1、将pom.xml文件中依赖的jdk版本改为1.8;
2、将文件中的Junit(用于单元测试)版本改为4.12
3、将文件中的<build></build> 标签中的多余的配置删除;

java两个maven模块互相调用怎么办 maven多模块_maven项目_02

3、maven模块之间的依赖

maven-service模块依赖maven-dao模块: 需要在maven-service模块的pom.xml文件中加上依赖:

java两个maven模块互相调用怎么办 maven多模块_java_03

在依赖集中加入maven-dao的依赖;其他的依赖类似;


完成依赖之后就可以在maven-service里使用maven-dao中的内容;
service–>dao;//maven-service依赖maven-dao
 controller–>service;//maven-controller依赖maven-service
 传递依赖:controller会依赖dao;