出错场景:
使用 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>