Maven工程拆分与聚合 ---no 2.

1.Maven 工程的拆分与聚合

为什么要拆分?
面对当今互联网+的行业,软件变得愈来愈庞大,复杂程度越来越高,为了提高开发与管理成本。工程的拆分可以实现分模块开发测试,可实现多线程开发与管理,提高工程代码复用度的同时,也同时提高了软件开发的速度与效率。
一个完整的早期开发好的crm项目,现在要使用maven工程对他进行拆分,这时候就可以将dao拆解出来,形成独立的工程,同样service,action也都进行这样的拆分。
把工程拆分成独立的工程,将来要用到的时候就把他们的坐标引进来就行了。
在这里插入图片描述
工程的聚合:
聚合一般是一个工程拆分成多个模块开发,每个模块是一个独立的工程,但要是运行时必须把所有模块聚合到一起才是一个完整的工程。此时可以使用maven的聚合工程。
例如电商项目中,包括商品模块、订单模块、用户模块等。就可以对不同的模块单独创建工程,最终在打包时,将不同的模块聚合到一起。
例如同一个项目中的表现层、业务层、持久层,也可以分层创建不同的工程,最后打包运行时,再聚合到一起。

在这里插入图片描述

继承的理解:
类似java类的继承,都是为了消除重复,父类里有的方法和属性在子类中就不需要在定义和实现了,使用的时候直接调用父类就可以,我们把crm拆分后,有一个父工程,子工程(crm06. crm06_service.crm06_web)要用到就不需要在入坐标。

2.开发步骤

创建一个maven工程。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

依赖的传递性

除了以上:

我们在:

  • crm_dao中创建dao接口并且实现dao接口类
  • crm_service中创建service接口实现service接口类

在这里插入图片描述
引入如图所示的依赖。
在这里插入图片描述

  • 在crm_web中引入service依赖
    在这里插入图片描述

在这里插入图片描述
可以看出:这两个包相应的引入了包crm_web下面。

冲突的排除:
xxx

依赖传递也是有范围的(了解)
xxx略

版本的锁定:实际开发中存在的问题,比如引入junit锁定只能引入一个

 <!-- 版本的锁定 -->
  <dependencyManagement>
  	<dependencies>
  		<groupId>junit</groupId>
  		<artifactId>junit</artifactId>
  		<version>4.9</version>
  		<scope>test</scope>
  	</dependencies>
  </dependencyManagement>

依赖的管理

略…

发布了76 篇原创文章 · 获赞 9 · 访问量 6788

猜你喜欢

转载自blog.csdn.net/qq_37870369/article/details/89341651