Sprinboot聚合项目归荑

本文介绍了如何使用Springboot构建聚合项目,强调了纯Springboot搭建聚合项目的方法,包括创建父级和子级工程的步骤,以及解决编译时主类找不到的问题。同时讨论了使用Maven+Springboot混合搭建的方式,以及Springboot项目导入依赖的插件功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、前言

        在创建springboot项目时,都会有一个Main方法。如果将Springboot项目设计成聚合项目时,我们是不是要把所有的子项目都按照Springboot的方式创建呢?如果是会出现什么问题,以及我们怎么解决呢?

        如果我们使用maven项目+Springboot项目混合使用,会有什么问题呢?

        这些都是今天我们要探讨的问题。

2、纯Springboot搭建聚合项目

        聚合项目的分层可以参照博主的另一篇文章:【微服务项目结构最佳实践】

2.1 创建父级工程

2.1.1 创建moudle或者project

因为Springboot项目的Packaging 没有pom的选项,这里可以直接使用默认的jar,创建完成之后修改成pom即可。

2.1.2 选择Springboot版本

 因为是父级工程,所以只需要选择Springboot版本即可,然后完成创建。

2.1.3 删除多余的包,只留下pom.xml

        a、pom中增加

<packaging>pom</packaging>

        b、根据需要决定是否要删除dependencies,父级pom中的依赖可以被所有子项目共享。

        c、指定Springboot启动运行的Main方法【这里不指定会出现问题,后面会介绍

<build>
    <plugins>
		<plugin>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-maven-plugin</artifactId>
			<configuration>
				<mainClass>xxxx.xxxx.xxxx.Test02Application</mainClass>
			</configuration>
		</plugin>
	</plugins>
</build>

        d、根据需要配置是否跳过测试文件

<!--编译跳过测试文件检查的生命周期-->
<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-surefire-plugin</artifactId>
	<configuration>
		<skip>true</skip>
	</configuration>
</plugin>

2.2 创建子工程(被引用的工程)

2.2.1 选择moudle,同2.1.1、2.1.2

2.2.2 修改pom文件的parent标签,指向父级工程

<parent>
    <groupId>com.simonking</groupId>
    <artifactId>simonking-test</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</parent>

2.2.3 增加pom文件中packaging标签为jar

<packaging>jar</packaging>

2.2.4 删除pom中的 spring-boot-maven-plugin,可以直接依赖父级项目中的。

2.2.5 在父级pom中增加moudle

<modules>
    <module>test01</module>
</modules>

2.3 创建子项目(启动的工程)

2.3.1 选择moudle,同2.1.1

2.3.2 选择同父级的springboot版本,然后选择需要依赖。

2.3.3 同2.2.3、2.2.4、2.2.5

2.4 遇到的问题以及解决方案

        a、使用maven编译项目时,会出现“找不到主类”的报错

        答:因为Springboot项目启动默认会加载 public static void main方法,当有多个时会报错。如果删除被引用的子项目的Main方法,又会出现“缺少主类”的错误,被引用的子项目并不需要Main方法。这时候需要我们再编辑时指定Main方法。也就是父级pom中mainClass的配置。这样可以完美的解决这个问题。

        b、当主项目引用其他项目时,明明可以引用到其他包里的方法,编译的时候就会报“找不到类”,直接运行又可以正常运行。编译之后就会报错。

        答:笔者根据网上的教程清除缓存,重启idea,并不能解决此问题。因为运行可以,编译出错猜测可能是maven的问题。这个猜测从stackoverflow上的得到验证:传送门

于是升级maven版本从3.6.1->3.9.1,问题解决。

3、使用maven+Springboot混合搭建

        创建过程和Springboot创建很类似,可以将引用的项目使用maven创建,因为maven项目是可以选择parent的,父级pom中的moudles可以不用维护。

  4、使用Springboot项目导入依赖的插件

        这个插件还比较好玩的就是Springboot项目可以使用插件选择插件导入,就像创建项目选择依赖一样。

4.1 插件

4.2 使用

pom中alt + insert、选择Edit Starters

 4.3 导入

 这里的Springboot版本是指定死的,所以可以放心勾选。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智_永无止境

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值