PAYATHON 2026

如何在 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 和依赖的兼容性。

备注:内容仅供参考。