前置:
在浏览本篇博客之前,建议先看一下这篇文章:
VSCode配置Java、Maven、Spring Boot开发环境
本篇博客是对之前这篇文章的补充以及更正。
说明:
之前这篇文章是有一些错误的,如果按照之前这篇文章搭建环境,然后写一个页面返回“Hello World!”的代码,会发现是可以运行的,但是它是存在着一些潜藏的错误的。所以本篇文章重新创建Spring Boot项目,对pom.xml做一些配置,以避免一些错误。
创建Spring Boot项目
按住“Ctrl+Shift+P”,输入“create”,在弹出的选项中选择Spring Initializr:Create a Maven Project……
Spring Boot版本选择3.3.0,
Project language选择Java语言,
Group Id为“com.example”,可以另取,
项目名称为”vs_demo6”,可以另取
Packaging type选择”jar”,
Java版本选择17,
勾选组件,一般开始为“Spring Web”、“Spring Boot DevTools”、“Lombok”,
确定之后,弹出窗口,选择项目存放的位置。
compile:
打开pom.xml,spring-boot-starter-parent 的版本由“3.3.0”改为“2.7.9”,
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.9</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
在<properties>里添加,
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
然后保存。
点击MAVEN→vs_demo6→Lifecycly,然后依次执行每一步,
在compile这一步可能会出现错误:“类文件具有错误的版本 61.0, 应为 52.0”。
当满足以下两个条件,这个错误即可解决:
"spring-boot-starter-parent"的版本已改为“2.7.9”.
按住“Ctrl+Shift+P”,输入“java”,在弹出的选项中选择"Java:Configure Java Runtime",项目java的版本显示为"1.8".
继续依次点击执行。
site:
当到site这一步时,可能会出现报错。
解决方法也很简单,向pom.xml里添加依赖。
在<dependencies>里添加
<dependency>
<groupId>org.apache.maven.doxia</groupId>
<artifactId>doxia-core</artifactId>
<version>1.11.1</version>
</dependency>
在<build>→<plugins>里添加
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>3.5.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.12.1</version>
</plugin>
deploy:
deploy的作用是已经打包好的项目部署到远程Maven仓库,基本不会影响代码的运行,这步现阶段可以不管。
pom.xml:
目前pom.xml的所有内容:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.9</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>vs_demo6</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>vs_demo6</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>17</java.version>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.maven.doxia</groupId>
<artifactId>doxia-core</artifactId>
<version>1.11.1</version>
</dependency>
<!--spring-boot-starter-actuator提供了生产级服务的健康检查、审计、统计和HTTP追踪等功能。-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>3.5.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.12.1</version>
</plugin>
</plugins>
</build>
</project>
注意:
不是太喜欢折腾的话,不要轻易动我给出的各个依赖的版本;Spring Boot的版本适配问题,还是挺令人头疼的。