解决SpringBoot项目打包失败:Unable to find a single main class from the following candidates

问题

原来的打包插件配置

执行mvn clean package,出现如下错误

[ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:1.5.3.RELEASE:repackage (default) on project webapps-api-bid: Execution default of goal org.springframework.boot:spring-boot-maven-plugin:1.5.3.RELEASE:repackage failed: Unable to find a single main class from the following candidates [com.xx.api.main.DeviceMain, com.xx.webapps.api.main.WebappsDeviceMain]

这个问题是SpringBoot项目里存在多个程序入口导致的。

比方说项目内有两个带有main方法的类并且都使用了@SpringBootApplication注解(或者另一种情形:你有两个main方法并且所在类都没有使用@SpringBootApplication注解)。

解决

方案1:

修改打包插件配置spring-boot-maven-plugin,下配置mainClass,指定程序入口。

方案2:

如果你的pom继承自spring-boot-starter-parent(注意此前提),也可以直接在配置(其实这里的start-class直接对应清单文件里的Start-Class):

方案3:

打包的的时候注释掉其他的@SpringBootApplication,或者你有两处main方法并且都没有使用@SpringBootApplication注解,注释掉一个main方法。

0

发表评论

邮箱地址不会被公开。