在配置基于Maven的Spring Boot项目的过程中,打包运行出现了一系列错误。

比如: mvn 中没有主清单属性、java.lang.NoClassDefFoundError: org/springframework/boot/SpringApplicatio等等

其原因主要在于

1.需要使用 spring-boot-maven-plugin 组件进行打包;

2.选定 spring-boot-starter-parent 依赖 Spring Boot 版本后,其余插件尽量不要手动指定版本号,以免造成兼容性问题;

3.如果Maven打包发现指定的依赖和运行的Java版本不对应,应手动在配置文件中指定Java版本;

4.尽量将主类放到<groupId>org.htsg</groupId>加<artifactId>test01</artifactId>组成的路径下:org.htsg.test01.App.java

综上,我们的一个可以正确使用Maven进行打包的简单pom.xml文件如下:

1 <?xml version="1.0" encoding="UTF-8"?>
 2 <project xmlns="http://maven.apache.org/POM/4.0.0"
 3          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 5     <modelVersion>4.0.0</modelVersion>
 6 
 7     <groupId>org.htsg</groupId>
 8     <artifactId>test01</artifactId>
 9     <version>1.0-SNAPSHOT</version>
10     <!--添加spring-boot-starter-parent作为父级依赖-->
11     <parent>
12         <groupId>org.springframework.boot</groupId>
13         <artifactId>spring-boot-starter-parent</artifactId>
14         <version>2.1.9.RELEASE</version>
15     </parent>
16 
17     <dependencies>
18         <dependency>
19             <!--添加spring-boot-starter-web作为Web项目依赖-->
20             <groupId>org.springframework.boot</groupId>
21             <artifactId>spring-boot-starter-web</artifactId>
22         </dependency>
23     </dependencies>
24 
25     <build>
26         <plugins>
27             <plugin>
28                 <groupId>org.springframework.boot</groupId>
29                 <artifactId>spring-boot-maven-plugin</artifactId>
30             </plugin>
31         </plugins>
32     </build>
33 </project>

其中包含了Web项目的基础配置不是必须的。