这篇“Springboot怎么使用maven打包指定mainClass”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Springboot怎么使用maven打包指定mainClass”文章吧。
使用maven打包指定mainClass
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <mainClass>com.xxx.XxxApplication</mainClass> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </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> <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问题。
以上就是关于“Springboot怎么使用maven打包指定mainClass”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程之家行业资讯频道。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。