Using Spring AI 1.0.0-SNAPSHOT: Important Changes and Updates

Using Spring AI 1.0.0-SNAPSHOT: Important Changes and Updates

Spring AI 1.0.0-SNAPSHOT introduces several important changes to artifact IDs, dependency management, and autoconfiguration. This blog post outlines these changes and provides guidance on how to update your projects.

The most significant change is the naming pattern for Spring AI starter artifacts:

  • Model starters: spring-ai-{model}-spring-boot-starterspring-ai-starter-model-{model}
  • Vector Store starters: spring-ai-{store}-store-spring-boot-starterspring-ai-starter-vector-store-{store}
  • MCP starters: spring-ai-mcp-{type}-spring-boot-starterspring-ai-starter-mcp-{type}

Additionally, you'll need to add snapshot repositories and update your dependency management configuration.

There are two ways to update your projects to Spring AI 1.0.0-SNAPSHOT: automatic updates using AI tools or manual updates. The automatic approach leverages Claude Code to quickly transform your projects, while the manual approach provides step-by-step instructions for those who prefer to make changes directly.

Automatic Updates Using Claude Code

For those who prefer an automated approach, you can use the Claude Code CLI tool with a provided prompt to automatically upgrade your projects to 1.0.0-SNAPSHOT. This approach can save time and reduce errors when upgrading multiple projects or complex codebases. For more details, see the Automating upgrading using AI section in the Upgrade Notes.

Here we will just show the steps that the Claude Code CLI tool will perform in the form of screen snapshots.

Pasting in the prompt.

Pasting a prompt in Claude

Updating BOM version.

Updating BOM version in Claude

Adding a repository.

Adding a repository in Claude

Updating a starter.

Updating a starter in Claude

All done!

Task completion in Claude

Manual Updates

Adding Snapshot Repositories

To use the 1.0.0-SNAPSHOT version, you need to add the snapshot repositories to your build file. The dependency on the Central Sonatype Snapshots repository (https://central.sonatype.com/repository/maven-snapshots/) is specifically needed to pick up snapshot dependencies of the 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/'
  }  
}

Updating Dependency Management

Update your Spring AI BOM version to 1.0.0-SNAPSHOT in your build configuration:

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
}

Changes to Spring AI Artifact IDs

The naming pattern for Spring AI starter artifacts has changed in 1.0.0-SNAPSHOT. You'll need to update your dependencies according to the following patterns:

  • Model starters: spring-ai-{model}-spring-boot-starterspring-ai-starter-model-{model}
  • Vector Store starters: spring-ai-{store}-store-spring-boot-starterspring-ai-starter-vector-store-{store}
  • MCP starters: spring-ai-mcp-{type}-spring-boot-starterspring-ai-starter-mcp-{type}

Example

Before:

<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-openai-spring-boot-starter</artifactId>
</dependency>

After:

<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-starter-model-openai</artifactId>
</dependency>

Changes to Spring AI Autoconfiguration Artifacts

The Spring AI autoconfiguration has changed from a single monolithic artifact to individual autoconfiguration artifacts per model, vector store, and other components. This change was made to minimize the impact of different versions of dependent libraries conflicting, such as Google Protocol Buffers, Google RPC, and others.

By separating autoconfiguration into component-specific artifacts, you can avoid pulling in unnecessary dependencies and reduce the risk of version conflicts in your application.

The original monolithic artifact is no longer available:

<!-- NO LONGER AVAILABLE -->
<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-spring-boot-autoconfigure</artifactId>
    <version>${project.version}</version>
</dependency>

Instead, each component now has its own autoconfiguration artifact following these patterns:

  • Model autoconfiguration: spring-ai-autoconfigure-model-{model}
  • Vector Store autoconfiguration: spring-ai-autoconfigure-vector-store-{store}
  • MCP autoconfiguration: spring-ai-autoconfigure-mcp-{type}

In most cases, you won't need to explicitly add these autoconfiguration dependencies. They are included transitively when using the corresponding starter dependencies.

Get the Spring newsletter

Stay connected with the Spring newsletter

Subscribe

Get ahead

VMware offers training and certification to turbo-charge your progress.

Learn more

Get support

Tanzu Spring offers support and binaries for OpenJDK™, Spring, and Apache Tomcat® in one simple subscription.

Learn more

Upcoming events

Check out all the upcoming events in the Spring community.

View all