网站首页 > 技术文章 正文
一.为什么要创建父子工程?
1.方便jar包管理,在父工程中管理依赖包,对版本做统一控制
2.方便构建,在父工程中执行构建命令,子工程会自动构建
二.创建过程
1.环境准备
Jdk1.8+,IDEA2018,Springboot2.3.12.RELEASE
2.创建springboot父工程
File===>New===>Project
选择Next
输入相关信息后,点Next
点击Next,如下:
点击Finish即可完成。
修改pom文件内容如下图所示:
在pom文件中增加<dependencyManagement>标签,目的是为了管理整个工程下依赖的版本号,被<dependencyManagement>标签管理的依赖,只会在父工程中被引用,如果子工程中需要引入相同的依赖,则需要在子工程项目中再次引入,如果在子工程中没有添加依赖的版本号,则以父工程的为准。如下图代码所示
<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.12.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.lsh</groupId>
<artifactId>springboot-learning</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboot-learning</name>
<packaging>pom</packaging>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<!--
依赖配置:
目前这里的配置的依赖所引入的jar包在此工程下的所有子工程都会被引入
-->
<dependencies>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.73</version>
</dependency>
</dependencies>
<!--
依赖管理:
这里的配置的依赖只是对依赖版本的管理配置,子工程并不会直接引入
如果子工程要需要引入只需要加入如下标签:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
这样就可以引入mysql的驱动了,这样的好处就是可以在父工程统一一下整个工程的jar包依赖版本
而且如果有的工程不需要一些jar就可以不进行引入
-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
2.创建第一个子工程
File===>New===>Module
到此,第一个子工程创建完成
三.总结
1.父子工程对于模块的分离程度更高了
按照以往的创建项目方式,一个maven项目就是一个大工程,一开始还能进行简单的测试编译,但是随着项目的不断变大和复杂化,后期再做改动则可能牵一发而动全身。但是使用父子工程,每个模块都是独立的,他们通过父控制器聚合在一起,这样当你要改动一个模块的时候你改动的也只是这一个模块而已,并不会影响其他的模块。
2.父子工程使代码更清晰,提高了重用
父控制器的存在之一就是为了去除重复
一个项目存在多个模块,可能同时由多个人开发,比如abc3个模块,3个模块都是基于spring的那么3个开发都需要引入spring的核心jar包,这样就引入了3份,但是使用父子工程,则只需要在父工程中引入了,则子工程自动继承。
猜你喜欢
- 2024-10-09 用IDEA把SpringBoot项目打成jar发布项目
- 2024-10-09 SpringBoot 01 环境搭建入门(简单springboot项目搭建)
- 2024-10-09 16:实现SpringBoot单个、多个文件的上传
- 2024-10-09 手把手教你用Spring-Boot搭建项目
- 2024-10-09 Spring Boot入门-快速搭建web项目
- 2024-10-09 使用IDEA创建gradle的spring boot项目并提交到DS916+的git server上
- 2024-10-09 Springboot工程建立(springboot工程搭建步骤)
- 2024-10-09 SpringBoot进阶3:项目搭建方法与项目结构分析
- 2024-10-09 SpringBoot+Mybatis多模块(module)项目搭建教程
- 2024-10-09 这样做优化,实现 0.059s 启动一个SpringBoot项目
- 最近发表
- 标签列表
-
- cmd/c (64)
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- js判断是否空对象 (63)
- pythoncase语句 (81)
- es6includes (73)
- sqlset (64)
- phprequire_once (61)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)