分模块父工程和子工程

95 阅读1分钟

分模块设计和开发

策略

1.按照功能模块拆分(适合大型项目)

2.按层拆分(小型项目)

3.按照功能模块+层拆分.(超大型项目)

继承

继承 描述的数俩个工程之间的关系.与java中的继承相似,子工程继承父工程的配置信息,常见于依赖关系的继承. 作用:简化依赖的配置,统一管理依赖,为了让子模块能够继承到父工程的相关信息(坐标、依赖、插件)

实现 <parent>...</parent> pom:父工程或聚合工程,该模块不写代码,仅进行依赖管理

例子

<parent>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-parent</artifactId>
  <version>3.0.2</version>
  <relativePath/> <!-- lookup parent from repository -->
</parent>

maven中,可以在父工程的pom文件中通过<depencymaanagement>标签来统一管理依赖版本.配合 <properties>使用

<properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  <jjwt.version>0.9.1</jjwt.version>
</properties>
<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>io.jsonwebtoken</groupId>
      <artifactId>jjwt</artifactId>
      <version>${jjwt.version}</version>
    </dependency>
  </dependencies>
</dependencyManagement>

<dependencyManagement><dependencys>的区别?

<dependencys>是直接依赖,在父工程配置了依赖版本,子工程会直接继承下来

<dependencyManagement>是统一管理依赖版本,不会直接依赖,还需要在子工程中引入所需依赖(无需指定版本)

聚合

父工程统一操作,即父工程执行什么,子模块都会执行相同的操作,父工程统一管理子模块的操作

实现

<modules>
  <module>boot-tlias-pojo</module>
  <module>boot-tlias-utils</module>
</modules>

image.png