解决no main manifest attribute, in XXX.jar
- 1. 问题描述
- 1.1 前言
- 1.2 问题描述
- 2. 问题原因
- 3. 解决问题
- 3.1 修改pom文件
- 3.2 重新启动
- 3.3 再次查看META-INF/MANIFEST.MF
- 3.4 小结
1. 问题描述
1.1 前言
- 创建一个简单的maven项目,pom配置如下:
1.2 问题描述
- 如下:
no main manifest attribute, in cloud-eureka.jar
2. 问题原因
-
原因是找不到主类。
- 一般情况下,java 打包成 jar 包需要在 MANIFEST.MF 中指定 Main-Class项,以便运行 java -jar xxx.jar 时找到对应的主类。
-
具体如下:
3. 解决问题
3.1 修改pom文件
- 添加下面的配置,如下:
<build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.*</include> </includes> </resource> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.*</include> </includes> </resource> </resources> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>1.5.9.RELEASE</version> <configuration> <mainClass>com.liu.susu.App</mainClass> </configuration> <executions> <execution> <id>repackage</id> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins> <finalName>${project.name}</finalName> </build>
3.2 重新启动
- 如下:
3.3 再次查看META-INF/MANIFEST.MF
- jar包能正常启动时的MANIFEST.MF文件,如下:
- 可以对比下面不能正常启动时的文件,如下:
3.4 小结
- 所以对于单独的项目,可以直接创建boot项目,快又省事!