Spring AI 1.0.0-SNAPSHOT:重要变更和更新说明
Spring AI 1.0.0-SNAPSHOT 在构件 ID、依赖管理和自动配置方面引入了几项重要变更。
本文将带你了解这些变更并提供项目更新指南。
最显著的变更是 Spring AI Starter 构件的命名模式:
- 模型 starter:
spring-ai-{model}-spring-boot-starter
→spring-ai-starter-model-{model}
- 向量存储 starter:
spring-ai-{store}-store-spring-boot-starter
→spring-ai-starter-vector-store-{store}
- MCP starter:
spring-ai-mcp-{type}-spring-boot-starter
→spring-ai-starter-mcp-{type}
此外,你需要添加快照仓库并更新 Dependency Management (依赖管理)配置。
有两种方式可以将项目更新到 Spring AI 1.0.0-SNAPSHOT:使用 AI 工具自动更新 或 手动更新。自动方式利用 Claude Code 快速转换你的项目,而手动方式为那些喜欢直接进行更改的人提供了逐步说明。
使用 Claude Code 自动更新
对于偏好自动化方式的用户,你可以使用 Claude Code CLI 工具,通过提供的提示自动将项目升级到 1.0.0-SNAPSHOT。这种方法可以在升级多个项目或复杂代码库时节省时间并减少错误。更多详情,请参阅升级说明中的 使用 AI 自动升级 部分。
这里仅以屏幕截图的形式展示 Claude Code CLI 工具将执行的步骤。
更新 BOM 版本。
添加仓库。
更新 starter。
全部完成!
手动更新
添加快照仓库
要使用 1.0.0-SNAPSHOT 版本,你需要在构建文件(pom.xml
)中添加相应的快照仓库。其中,Central Sonatype Snapshots 仓库(https://central.sonatype.com/repository/maven-snapshots/
)是必需的,因为它包含了 MCP Java SDK 的快照依赖。
Maven
<repositories>
<repository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<releases>
<enabled>false</enabled>
</releases>
</repository>
<repository>
<name>Central Portal Snapshots</name>
<id>central-portal-snapshots</id>
<url>https://central.sonatype.com/repository/maven-snapshots/</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
Gradle
repositories {
mavenCentral()
maven { url 'https://repo.spring.io/snapshot' }
maven {
name = 'Central Portal Snapshots'
url = 'https://central.sonatype.com/repository/maven-snapshots/'
}
}
更新 Dependency Management
在你的构建配置中将 Spring AI BOM 版本更新为 1.0.0-SNAPSHOT
:
Maven
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-bom</artifactId>
<version>1.0.0-SNAPSHOT</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Gradle
dependencies {
implementation platform("org.springframework.ai:spring-ai-bom:1.0.0-SNAPSHOT")
// Add specific Spring AI dependencies here
}
Spring AI 构件 ID 的变更
在 1.0.0-SNAPSHOT 中,Spring AI starter 构件的命名模式发生了变化。你需要按照以下模式更新你的依赖:
- 模型 starter:
spring-ai-{model}-spring-boot-starter
→spring-ai-starter-model-{model}
- 向量存储 starter:
spring-ai-{store}-store-spring-boot-starter
→spring-ai-starter-vector-store-{store}
- MCP starter:
spring-ai-mcp-{type}-spring-boot-starter
→spring-ai-starter-mcp-{type}
示例
更新前:
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-openai-spring-boot-starter</artifactId>
</dependency>
更新后:
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-model-openai</artifactId>
</dependency>
Spring AI 自动配置构件的变更
Spring AI 的自动配置已从单一的整体构件变更为按模型、向量存储和其他组件划分的独立自动配置构件。进行此更改是为了最小化不同版本依赖库(如 Google Protocol Buffers、Google RPC 等)之间冲突的影响。
通过将自动配置分离为组件特定的构件,你可以避免引入不必要的依赖,并减少应用程序中版本冲突的风险。
原来的整体构件不再可用:
<!-- NO LONGER AVAILABLE -->
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-spring-boot-autoconfigure</artifactId>
<version>${project.version}</version>
</dependency>
相反,每个组件现在都有自己的自动配置构件,遵循以下模式:
- 模型自动配置:
spring-ai-autoconfigure-model-{model}
- 向量存储自动配置:
spring-ai-autoconfigure-vector-store-{store}
- MCP 自动配置:
spring-ai-autoconfigure-mcp-{type}
在大多数情况下,你不需要显式添加这些自动配置依赖。它们在使用相应的 starter 依赖时会被传递依赖。
Ref:https://spring.io/blog/2025/03/27/spring-ai-update-to-snapshots