开发者

Springboot使用maven打包指定mainClass问题

目录
  • 使用maven打包指定mainClass
  • SpringBoot Maven打包错误及原因
    • Unable to find main class 问题原因
    • 找不到符号问题原因
  • 总结

    使用maven打包指定mainClass

    <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <configuration>
                        <mainClass>com.xxx.XxxApplication<开发者_Go学习;/mainClass>
                    </configuration>
                    <executions>
                        <execution>
                            <goals>
                                <goal>repackage</goal>
                            </goals>
              android          </execution>
                  android  </executions>
                </plugin>
            </plugins>
        </build>
    

    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 问题原因

    如果使用SpringBoot打包插件如下

    <build>
        &http://www.devze.comlt;plugins>
             <plugin>
                 <groupId>org.springframework.boot</groupId>
                 <artifactId>spring-boot-maven-plugin</artifactId>
             </plugin>
         </plugins>
    </build>
    
    • 如果使用了这个打包插件,那么我们就必须有一个类使用了@SpringBootApplication注解,否则打包的时候将会报repackage failephpd: 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打包方式。

    Springboot使用maven打包指定mainClass问题

    一个项目有多个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>就可以了。注意:这里有可能引发U编程nable to find main class问题。

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新开发

    开发排行榜