SpringBoot jar方式启动报找不到main方法问题
SpringBoot打成jar包
pom.xml里面配置:
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<layout>ZIP</layout>
<mainClass>com.iyunwen.search.SearchApplication</mainClass>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
MANIFEST.MF
打成jar后,META-INF/MANIFEST.MF文件如下图所示:
文件里要包含Start-Class、Main-Class
运行jar包
java -jar 包名,结果报错,如下图:
排查问题
经过查找资料,发现pom里面也配置了mainClass,打出来的jar的MANIFEST.MF也有Start-Class、Main-Class,最后有排查了一下配置的mainClass的路径,发现是启动类的路径修改了,pom文件里没有同步修改:
实际的包路径是com.iyunwen.tenant.search.SearchApplication
解决方案
修改pom里的mainClass配置:
pom.xml里面配置:
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<layout>ZIP</layout>
<mainClass>com.iyunwen.tenant.search.SearchApplication</mainClass>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
启动没有报main方法找不到了: