出错场景:
使用 IDEA 新建一个web项目,本地运行没问题,打包后执行java -jar web-0.0.1-SNAPSHOT.jar
报错web-0.0.1-SNAPSHOT.jar中没有主清单属性
。
解决方案:
错误原因:IDEA默认使用
spring-boot-maven-plugin
插件,默认设置<skip>
为true,这会导致 Spring Boot 插件跳过重新打包 JAR 文件的步骤,进而不生成包含 Main-Class 属性的清单文件。
解决方法:移除或者备注掉就可以了。
<build><resources><resource><directory>src/main/resources</directory><filtering>true</filtering></resource></resources><plugins><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><encoding>UTF-8</encoding></configuration></plugin><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>${spring-boot.version}</version><configuration><mainClass>com.github.nan.web.NanWebApplication</mainClass><!-- <skip>true</skip> --> <!-- 移除或设置为 false --></configuration><executions><execution><id>repackage</id><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins></build>