如何在 STS 中创建 Java 11、Spring Boot 2.5.3 项目?
可以直接创建普通 Maven 项目,在 pom.xml 中指定 Spring Boot 2.5.3,再用 JDK 11 构建。Java 11 可以用于这个版本,跟着书中示例操作时,无须先部署本地 Spring Initializr 服务。
为什么安装旧版 STS 仍然没有旧版本选项?
STS 的 Spring Starter Project 向导从配置的 Spring Initializr 服务获取可选版本。问题中连接的是 https://start.spring.io,所以安装旧版 STS 也不会让远端服务恢复以前的版本列表。
项目实际使用的 Spring Boot 版本由构建配置决定。修改已有项目的 pom.xml 会影响该项目,但不会改变新建项目向导中的版本选项。
创建指定版本的 Maven 项目
在 STS 中选择 File → New → Maven Project,创建普通 Maven 项目。不同版本的 STS 菜单名称可能略有差异;如果选择了 archetype,生成的示例文件也可能不同。
下面是一个简单 Web 项目使用的 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.5.3</version>
<relativePath/>
</parent>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<properties>
<java.version>11</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
在 src/main/java/com/example/demo/DemoApplication.java 中添加启动类:
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
这个示例只展示项目配置,没有添加业务接口。跟随书中示例时,按书中的要求选择依赖并编写代码。
如果已有项目,可以直接修改它的 pom.xml。如果原项目使用较新的 Spring Boot 版本,还要检查代码、依赖和配置是否适用于 2.5.3,不能只改版本号就认定兼容。
确认项目使用 JDK 11
<java.version>11</java.version> 不会自动安装 JDK,也不会自动切换 Maven 使用的 Java。
在 STS 的 Java 设置中注册 JDK 11,检查项目的 JRE System Library 和编译器级别。修改 pom.xml 后,对项目执行 Maven → Update Project,让 IDE 重新加载依赖和配置。
在终端构建时,先运行以下命令检查:
java -version
mvn -v
查看 mvn -v 输出中的 Java 版本和 Java home,确认 Maven 使用的是 JDK 11。然后在项目根目录执行:
mvn clean package
mvn spring-boot:run
STS 自身的启动 JDK 可以与项目的构建 JDK 不同。如果所用 STS 需要更高版本的 Java 才能启动,可以保留它的启动环境,再为项目单独配置 JDK 11。
Service URL 能否改成 localhost?
可以,但本地必须已经运行与向导兼容的 Spring Initializr 服务。仅将地址改为 http://localhost:8080,不会自动获得旧版本列表或项目生成能力。
本地服务需要提供版本元数据和项目生成接口,并为 Spring Boot 2.5.3 正确配置依赖信息。即使列表中出现了这个版本,也需要确认生成的构建文件和依赖适用于它。
如果只是为了完成书中的练习,直接维护 Maven 项目更省事。本地 Initializr 更适合需要反复生成统一项目模板的场景。
构建失败时检查什么?
如果提示找不到 spring-boot-starter-parent:2.5.3,应检查 Maven 仓库、镜像、代理和网络访问情况。Initializr 的可选版本列表和 Maven 能否解析指定依赖是两回事。
如果提示编译目标版本不受支持,先检查 Maven 实际使用的 JDK。如果从较新版本降级后出现编译错误,再检查具体 API 和依赖的兼容性。
备注:内容仅供参考。
