问题:新建一个多module的spring boot应用,使用spring-boot-maven-plugin打包报错“repackage failed: Unable to find main class”。
Spring Boot的Maven插件(Spring Boot Maven plugin)能够以Maven的方式为应用提供Spring Boot的支持,即为Spring Boot应用提供了执行Maven操作的可能。
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
如果是多module的spring boot应用,刚创建的项目有的module可能还是空的,使用spring-boot-maven-plugin打包可能会报错“repackage failed: Unable to find main class”,貌似是因为spring boot项目要求必须有main方法。解决方式目前我知道的有三种:
方法一:将maven插件换成普通的apache的maven
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
方法二:<configuration>下配置mainClass,指定程序入口。
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.myspringboot.MyApplication</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
方法三:对于使用了 spring-boot-starter-parent 的项目, 只需在properties中指定start-class启动类即可。
<properties>
<start-class>com.myspringboot.MyApplication</start-class>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>