SpringBoot Maven打包 错误及原因

SpringBoot Maven打包 错误及原因

1.org.springframework.boot:spring-boot-maven-plugin:2.2.1.RELEASE:repackage failed: Unable to find main class
2.找不到符号

Unable to find main class 问题原因

  1. 如果使用SpringBoot打包插件如下
<build>
    <plugins>
         <plugin>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-maven-plugin</artifactId>
         </plugin>
     </plugins>
</build>
  • 如果使用了这个打包插件,那么我们就必须有一个类使用了@SpringBootApplication注解,否则打包的时候将会报repackage failed: Unable to find main class
  • 如果我们的项目打包只是一个普通的工具包,那么什么打包插件都不用加,maven使用默认方式给我们打包,不用配置(了解maven默认方式配置可网上查,网上很多)。
  • 如果我们的项目是多级构建(多Module)方式构建,在打包的时候只是一个普通module,但是还是报repackage failed: Unable to find main class错误,这个时候我们就查看module的父级项目是否加入了SpringBoot打包插件,因为打包插件也会继承。所以建议不要为了方便而直接在父级项目加入SpringBoot的打包插件,而是那个Module需要打包为SpringBoot项目再加入SpringBoot打包插件
  • 关于maven默认打包方式中(如下图),package是以jar方式打包,所以没有必要再pom.xml配置,除非我们只是打包为pom,我们可以配置<packaging>pom</packaging>,否则没有必要配置。当然多module的最顶级一定是pom打包方式。在这里插入图片描述
  • 一个项目有多个main.class,导致打包时maven不知道使用哪一个为主入口,这里我们需要设置
<build>
 <plugins>
   <plugin>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-maven-plugin</artifactId>
     <configuration>
      	<mainClass>com.demo.springboot.DemoSbApplication</mainClass>
     </configuration>
   </plugin>
 </plugins>
</build>

找不到符号问题原因

  • 这个原因一般是我们在打包时,打包项目是打jar包,又引用了其他module。而其他module没使用jar方式打包,对于springboot来说就是设置了<packaging>pom</packaging>,这种肯定是找不到类,所以我们只要设置那个module的打包方式为<packaging>jar</packaging>就可以了。注意:这里有可能引发Unable to find main class问题。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

老李与GPT

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

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

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

打赏作者

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

抵扣说明:

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

余额充值