[SpringBoot]创建聚合项目

news/2024/11/6 13:28:38/

前言 

聚合项目(父子级项目)的核心价值: 版本的控制,可以通过父项目做依赖的管理,而依赖管理的核心其实就是管理各个依赖项的版本。以至于后续我们会有若干个子项目,这些子项目所使用的依赖项的版本是相同的,避免出现版本的冲突,因为子项目间也可能相互依赖,很容易冲突。



首先,创建父级项目:
 

 因为手动添加依赖,以下只选版本不打钩

 因为父项目不写代码,所以删除src

调整pom.xml文件(并刷新maven),如下:

<?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><packaging>pom</packaging><modules><module>untitled</module></modules><!-- 父级项目,其实,每个基于Spring Boot的项目,都应该是spring-boot-starter-parent的子项目 --><!-- 本次建议使用 2.5.x 系列的版本 --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.5.0</version><relativePath/> <!-- lookup parent from repository --></parent><!-- 当前项目的信息 --><groupId>cn.tedu</groupId><artifactId>csmall-server</artifactId><version>0.0.1</version><!-- 父项目配置packaging为pom --><!-- 此标签的默认值是jar,各子级项目可以不必配置此标签 --><packaging>pom</packaging><!-- 子级模块项目清单 --><modules><module>csmall-product</module></modules><!-- 属性配置 --><!-- 可以自定义所需的配置 --><properties><java.version>1.8</java.version><spring-boot.version>2.5.0</spring-boot.version></properties><!-- 依赖管理 --><!-- 配置在此标签下的各依赖,不会被各子项目继承 --><!-- 依赖管理主要是管理各依赖项的版本,各项目添加此处配置的依赖项时不必指定版本号 --><dependencyManagement><dependencies><!-- Spring Boot的基础依赖项 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><version>${spring-boot.version}</version></dependency><!-- Spring Boot测试的依赖项 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><version>${spring-boot.version}</version></dependency></dependencies></dependencyManagement><!-- 当前项目使用的依赖项 --><!-- 在父项目中配置的依赖项,各子项目均可以直接继承得到,即:子项目不需要添加这些依赖 --><dependencies></dependencies></project>

完成后,对父级项目点击鼠标右键,选择New > Module以创建子级项目模块,先创建csmall-product,它是用于处理商品数据管理的:

调整pom文件

关于这个子项目,主要配置:

  • 使用csmall-server作为父项目

  • 添加依赖项

具体配置为:

<?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>cn.tedu</groupId><artifactId>csmall-server</artifactId><version>0.0.1</version><relativePath/> <!-- lookup parent from repository --></parent><!-- 当前项目的信息 --><groupId>cn.tedu</groupId><artifactId>csmall-product</artifactId><version>0.0.1</version><!-- 当前项目使用的依赖项 --><dependencies><!-- Spring Boot的基础依赖项 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><!-- Spring Boot测试的依赖项 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><!-- 构建项目的配置 --><!-- 如果此处的配置报错,可以: --><!-- 1. 删除报错的标签,因为,除非你需要将项目打包,否则,可以不需要此处的配置 --><!-- 2. 显式的指定版本号可能可以解决报错的问题 --><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

 聚合项目形式

关于依赖项的作用域

在配置依赖项时,可以通过<scope>指定此依赖项的作用域,例如:  

<!-- Spring Boot测试的依赖项 -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope>
</dependency>

关于<scope>的配置值:

  • test:此依赖项仅用于测试,仅作用于src/test下的代码,并且,当项目编译打包时,不会被打包


http://www.ppmy.cn/news/148020.html

相关文章

绿源2022一款新电动车——cola3,祝你3.8女神节快乐

有人说“陪伴是最长情的告白”&#xff0c;所以女神节不能只有3月8日这一天&#xff0c;而是一直陪伴&#xff0c;一起到永远。这就像绿源电动车一样&#xff0c;不仅眼前一亮的感觉&#xff0c;而且能够一直给你陪伴&#xff0c;每天给你新鲜。就像有的绿源电动车用户说的一样…

刹车刹不住,太危险?我在绿源杭州电动车店提的新车超稳哒~

上个礼拜&#xff0c;我在下班回家的小路口&#xff0c;差点和别人撞上了。原因是我的车刹车不灵&#xff0c;右转弯前滑行了好一会儿也不见速度下来&#xff0c;幸亏那边准备左转弯的外卖小哥刹住车了&#xff0c;当时吓得我真的要心脏骤停了~ 到家后&#xff0c;想想电动车刹…

拉着老公,逛了一趟绿源电动车连锁店,喜提新座驾。

上个月&#xff0c;同事买了一辆造型“炒鸡”卡哇伊的绿源电动车。看到之后&#xff0c;让我瞬间感觉自己那台“老电驴”不香了。回家后&#xff0c;我便时不时给老公念叨换车的事。终于在我的软磨硬泡之下&#xff0c;他答应周末陪我到小区附近的绿源门店逛逛。哈哈&#xff0…

app渗透-抓包

app渗透-1 前言1.模拟器2.抓包工具-Fiddler2.1抓app包2.1.1设置模拟器2.1.2设置fiddler2.1.3使用 2.2抓小程序2.2.1抓包2.2.2解决抓不到https2.2.3解决抓不到包-12.2.4解决抓不到包-22.2.5解决抓不到包-3 前言 不要把app和小程序想的多困难&#xff0c;其实就是一个小的网站塞…

win10 编译 openssl

环境:系统win10 编译器:VS2015 准备: 一、openssl下载 官网&#xff1a;www.openssl.org 安装Perl,安装NASM. cmd下运行perl --version得出下面信息就说明安装perl安装成功. nasm --version得出下面信息,说明nasm安装成功 我以vs2015为例: 打开这个终端,之所以打开这个是因…

阿里云数据库优惠活动: 数据库MySQL配置价格表出炉

阿里云数据库优惠活动&#xff1a; 数据库MySQL配置价格表出炉&#xff0c;满足条件的新用户可享指定折扣&#xff0c;新用户折扣不与其他活动及优惠叠加使用&#xff0c;折扣限首次首件。首次续费6折起&#xff0c;活动期间&#xff0c;云数据库RDS MySQL/SQL Server 首购用户…

Linux提权:定时任务 环境变量 配置不当 数据库

目录 环境变量配合SUID 实战测试 原理分析 实战中如何发现挖掘这类安全问题 定时任务打包配合SUID 原理分析 定时任务权限配置不当 数据库提权-梭哈的艺术 隧道出网提权 环境变量配合SUID 实战测试 这个提权方法比较鸡肋&#xff0c;因为它需要两个前提条件&#xf…

中央空调如何维修?中央空调如何保养?

​当我们在使用中央空调的时候&#xff0c;想必大家都会在第一时间找师傅维修&#xff0c;其实我们可以事先自己检查一下&#xff0c;如果是一些小毛病的话我们自己就可以解决了&#xff0c;也可以为我们省去没必要的费用&#xff0c;那么中央空调故障如何维修呢? 一、中央空调…