springboot多模块打包错误:Process terminated;Unable to find main class

这种错误有许多可能的错误之处,我的是因为:

  

我的项目结构目录(有三级):

 

    |---父项目

                    |---子模块

                          |---子子模块

 

  当我在创建子模块下的某个子子模块时,第一次创建就照常右击子模块,选择新建模块,写好新建的子子模块的名字后点击确定,发现刚创建的这个子子模块和子模块同目录(也就是它也在父项目下,和子模块同一等级)就像这样:

    |---父项目

                    |---子模块

                    |---子模块

 

  这肯定不行啊,这哪是创建子子模块,很明显我这是又创建了一个子模块,事与愿违,于是我就删了这个刚创建失败的模块,想重新在子模块下创建一个子子模块。于是就再右击子模块选择新建模块,可创建完后发现还是和子模块在同一层级下:

    |---父项目

                    |---子模块

                    |---子模块

 

后来经过询问后发现:

原来是在新建一个model时,Location写的不对,没有分层(当时创建的时候不知道为什么不是这种分级路径,可能是idea没反应过来吧):

 

 

 看到了吗,parent是父项目、service是子模块、“子子门模块”就是我们要创建第三级模块也就是子子模块。

按照这种层级创建层能成功创建出三级模块:

    |---父项目

                    |---子模块

                          |---子子模块

 

 

 

 

但是

当我运行测试代码的时候项目打包出错:(由于报的错没有详细记录) 其中有这个提示:

 

[ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:...repackage failed: Unable to find main class

 

控制台就两个红色单词:

Process terminated;

 

 

怎么解决?

还记得之前创建的那个子子目录吗?

要知道,每次创建模块,它都会在他的上一级的pom文件中自动生成这个东西,来标识该模块:

<modules>
<module>service</module>
   <module>子子模块</module>
</modules>

由于我创建失败的子子模块不在子模块下,而是在父项目下,与子模块同级,所以它会在父项目的pom文件中出现上面的那个标识:
<module>子子模块</module>
我们把这个模块去掉就行了,让父项目下只有子模块的module标识就行了:

<modules>
<module>service</module>
</modules>


不是吧!!!
上面的东西改好后,我运行test测试里面的程序还是报错:
spring-boot-maven-plugin:2.5.3:repackage failed: Unable to find main class

没办法那就接着造呗。


去网上搜了许多这种错误的解决方案,终于找到了:

该博客地址:https://www.dandelioncloud.cn/article/details/1370378236395646978

这个博客的解决方式也很简单:
解决方式:
不使用springboot的maven插件,改为使用普通的maven插件,使用springboot的maven插件意味着每个模块都需要有启动类,而使用普通的插件则不需要。
    <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <source>1.6</source>
                        <target>1.6</target>
                        <encoding>${project.build.sourceEncoding}</encoding>
                    </configuration>
                </plugin>
            </plugins>
     </build>


我把上面的一段配置替换掉之前父项目中的<build>配置后,再次打包运行果然好了。
很显然,当我们创建多个模块的时候,就会容易遇到这种错误,不过只要我们多多总结,多多思考做好笔记,就会....










 

posted @   sensen~||^_^|||&  阅读(1430)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示