在配置基于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项目的基础配置不是必须的。