springboot分布式项目部署报错问题

本文详细介绍了在SpringBoot分布式项目中,如何处理公用模块打包问题,以及解决打包上传到Docker时遇到的依赖冲突。通过将公用模块改为Spring项目,修改POM文件配置,处理IDEA的模块识别问题,并调整Maven的JDK版本,最终成功打包和部署。文章强调了解决这类问题需要清晰的逻辑和逐步排查。

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

这里注重讲的是,当一个公用模块存在于父项目中,打包遇到的一系列问题

首先,springboot项目打包上传给docker时,如果此项目引用了其它的springboot项目,则是不允许的,所以需要将公用模块改为spring项目,而非springboot项目

改变方法:首先pom文件中注释掉它继承的父类,同样在父类pom文件中注释掉声明的这个子类,

其次需要给公用模块的所有依赖写出版本,因为只有springboot项目不需要版本,

最后,将build全部注释,因为里面可能定义了此项目的打包方式为springboot,所以直接全部注释掉,至此,pom改变完毕

刷新maven,如果报错,则是因为idea默认公用模块为父模块的子模块,解决方式是:进入父模块所在的文件夹,将里面的公用模块移动到别的文件夹,进入idea,然后再进入文件夹将公用模块移动至父模块,此时,公用模块和父模块的父子关系已经斩断,并且公用模块已经不再是springboot项目

但是,当解决了上面的问题后,遇到了一个新问题:此时idea并不认为公用模块为一个模块,而是一个文件夹,在maven刷新那里有个➕加号,点击加号将此公用模块添加就ok了

接下来就可以进行打包公用模块操作,但是你可能会遇到一个问题,它会报一个版本过低的错,这是由于maven默认使用的是jdk5或者更低的版本,需要在此模块的pom文件中声明版本,声明方式如下:

 

 

 <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

 

以上代表声明了jdk版本为1.8或者更高,问题得到解决

 

如果还报一个编译异常的错,这时候就是很简单的一个问题,通常出现在启动类里面,即使你注释了springboot启动类注解,但是main方法的写法仍然是不被普通项目所认可的,你可以试着运行它,大概率报错,此时将main方法中内容清空,随便输出一句话,大概率运行成功,此时再去打包就可以了

 

总结:代码报错总是千奇百怪的,不一定我的这些解答能帮到你,因为可能我们遇到的报错只有一点点区别,但是解决方式却大不相同,其实我对好多报错也很懵,看不懂英文,但是只要逻辑清晰,总会解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值