or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

tessl/maven-org-springframework-cloud--spring-cloud-release-train

Spring Cloud Release Train - Provides spring-cloud-dependencies BOM and spring-cloud-starter-parent for comprehensive Spring Cloud dependency management and project configuration

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
mavenpkg:maven/org.springframework.cloud/spring-cloud-starter-build@2025.0.x

To install, run

npx @tessl/cli install tessl/maven-org-springframework-cloud--spring-cloud-release-train@2025.0.0

0

# Spring Cloud Release Train

1

2

The Spring Cloud Release Train is a curated set of dependencies across a range of Spring Cloud projects. It provides two essential Maven artifacts that simplify dependency management and project configuration for Spring Cloud applications: the spring-cloud-dependencies BOM for version management and the spring-cloud-starter-parent for complete project setup.

3

4

## Package Information

5

6

- **Package Name**: spring-cloud-starter-build (release train)

7

- **Package Type**: maven

8

- **Language**: Java

9

- **Group ID**: org.springframework.cloud

10

- **Version**: 2025.0.0

11

- **Packaging**: pom

12

- **URL**: https://projects.spring.io/spring-cloud

13

- **Organization**: Pivotal Software, Inc. (https://www.spring.io)

14

- **Installation**: Use as BOM import or parent POM in Maven projects

15

16

## Core Imports

17

18

### Using spring-cloud-dependencies BOM

19

20

```xml { .api }

21

<dependencyManagement>

22

<dependencies>

23

<dependency>

24

<groupId>org.springframework.cloud</groupId>

25

<artifactId>spring-cloud-dependencies</artifactId>

26

<version>2025.0.0</version>

27

<type>pom</type>

28

<scope>import</scope>

29

</dependency>

30

</dependencies>

31

</dependencyManagement>

32

```

33

34

### Using spring-cloud-starter-parent

35

36

```xml { .api }

37

<parent>

38

<groupId>org.springframework.cloud</groupId>

39

<artifactId>spring-cloud-starter-parent</artifactId>

40

<version>2025.0.0</version>

41

<relativePath/>

42

</parent>

43

```

44

45

## Basic Usage

46

47

### BOM Usage Pattern

48

49

```xml

50

<?xml version="1.0" encoding="UTF-8"?>

51

<project xmlns="http://maven.apache.org/POM/4.0.0"

52

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

53

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0

54

http://maven.apache.org/xsd/maven-4.0.0.xsd">

55

<modelVersion>4.0.0</modelVersion>

56

57

<!-- Your existing parent POM -->

58

<parent>

59

<groupId>com.company</groupId>

60

<artifactId>my-parent</artifactId>

61

<version>1.0.0</version>

62

</parent>

63

64

<groupId>com.example</groupId>

65

<artifactId>my-spring-cloud-app</artifactId>

66

<version>1.0.0</version>

67

68

<!-- Import Spring Cloud BOM for dependency management -->

69

<dependencyManagement>

70

<dependencies>

71

<dependency>

72

<groupId>org.springframework.cloud</groupId>

73

<artifactId>spring-cloud-dependencies</artifactId>

74

<version>2025.0.0</version>

75

<type>pom</type>

76

<scope>import</scope>

77

</dependency>

78

</dependencies>

79

</dependencyManagement>

80

81

<dependencies>

82

<!-- Spring Cloud dependencies without version specification -->

83

<dependency>

84

<groupId>org.springframework.cloud</groupId>

85

<artifactId>spring-cloud-starter-config</artifactId>

86

</dependency>

87

<dependency>

88

<groupId>org.springframework.cloud</groupId>

89

<artifactId>spring-cloud-starter-gateway</artifactId>

90

</dependency>

91

</dependencies>

92

</project>

93

```

94

95

### Parent POM Usage Pattern

96

97

```xml

98

<?xml version="1.0" encoding="UTF-8"?>

99

<project xmlns="http://maven.apache.org/POM/4.0.0"

100

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

101

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0

102

http://maven.apache.org/xsd/maven-4.0.0.xsd">

103

<modelVersion>4.0.0</modelVersion>

104

105

<!-- Use Spring Cloud Starter Parent -->

106

<parent>

107

<groupId>org.springframework.cloud</groupId>

108

<artifactId>spring-cloud-starter-parent</artifactId>

109

<version>2025.0.0</version>

110

<relativePath/>

111

</parent>

112

113

<groupId>com.example</groupId>

114

<artifactId>my-spring-cloud-app</artifactId>

115

<version>1.0.0</version>

116

117

<dependencies>

118

<!-- Spring Cloud dependencies without version specification -->

119

<dependency>

120

<groupId>org.springframework.cloud</groupId>

121

<artifactId>spring-cloud-starter-config</artifactId>

122

</dependency>

123

<dependency>

124

<groupId>org.springframework.cloud</groupId>

125

<artifactId>spring-cloud-starter-gateway</artifactId>

126

</dependency>

127

</dependencies>

128

</project>

129

```

130

131

## Architecture

132

133

The Spring Cloud Release Train provides two complementary approaches to Spring Cloud dependency management:

134

135

### Release Train Structure

136

- **spring-cloud-dependencies**: Bill of Materials (BOM) that imports 15 Spring Cloud component BOMs

137

- **spring-cloud-starter-parent**: Complete parent POM that extends Spring Boot and includes the BOM

138

- **Version Alignment**: Ensures compatible versions across all Spring Cloud components

139

- **Release Naming**: Uses alphabetic naming (2025.0.0 release train) rather than individual component versions

140

141

### Dependency Management Hierarchy

142

```

143

spring-cloud-dependencies (BOM)

144

├── spring-cloud-commons-dependencies

145

├── spring-cloud-config-dependencies

146

├── spring-cloud-gateway-dependencies

147

├── spring-cloud-netflix-dependencies

148

├── spring-cloud-stream-dependencies

149

└── ... (11 more component BOMs)

150

151

spring-cloud-starter-parent

152

├── extends: spring-boot-starter-parent:3.5.0

153

├── imports: spring-cloud-dependencies:2025.0.0

154

├── provides: repository configurations

155

└── provides: build profiles and distribution management

156

```

157

158

## Usage Comparison

159

160

| Aspect | spring-cloud-dependencies | spring-cloud-starter-parent |

161

|--------|---------------------------|------------------------------|

162

| **Use Case** | Already have parent POM | Need complete parent solution |

163

| **Parent POM** | Keep your existing parent | Extends Spring Boot parent |

164

| **Configuration** | BOM import only | Complete build configuration |

165

| **Repository Setup** | Manual configuration | Pre-configured Spring repos |

166

| **Build Profiles** | Not included | Development, milestone, central |

167

| **Distribution** | Not included | Pre-configured publishing |

168

| **Gradle Support** | Yes (platform/BOM) | No (Maven parent only) |

169

| **Flexibility** | Maximum control | Opinionated defaults |

170

171

## Capabilities

172

173

### Spring Cloud Dependencies BOM

174

175

Provides centralized version management for all Spring Cloud components through a Bill of Materials that can be imported into any Maven or Gradle project.

176

177

```xml { .api }

178

<dependencyManagement>

179

<dependencies>

180

<dependency>

181

<groupId>org.springframework.cloud</groupId>

182

<artifactId>spring-cloud-dependencies</artifactId>

183

<version>2025.0.0</version>

184

<type>pom</type>

185

<scope>import</scope>

186

</dependency>

187

</dependencies>

188

</dependencyManagement>

189

```

190

191

The BOM imports dependency management from these Spring Cloud component BOMs:

192

193

```xml { .api }

194

<!-- Core Spring Cloud Components (versions managed by BOM) -->

195

<dependency>

196

<groupId>org.springframework.cloud</groupId>

197

<artifactId>spring-cloud-commons-dependencies</artifactId>

198

<version>4.3.0</version>

199

<type>pom</type>

200

<scope>import</scope>

201

</dependency>

202

203

<dependency>

204

<groupId>org.springframework.cloud</groupId>

205

<artifactId>spring-cloud-config-dependencies</artifactId>

206

<version>4.3.0</version>

207

<type>pom</type>

208

<scope>import</scope>

209

</dependency>

210

211

<dependency>

212

<groupId>org.springframework.cloud</groupId>

213

<artifactId>spring-cloud-gateway-dependencies</artifactId>

214

<version>4.3.0</version>

215

<type>pom</type>

216

<scope>import</scope>

217

</dependency>

218

219

<!-- ... continues for all 15 components -->

220

```

221

222

**Gradle Usage:**

223

224

```gradle { .api }

225

dependencyManagement {

226

imports {

227

mavenBom 'org.springframework.cloud:spring-cloud-dependencies:2025.0.0'

228

}

229

}

230

231

dependencies {

232

implementation 'org.springframework.cloud:spring-cloud-starter-config'

233

implementation 'org.springframework.cloud:spring-cloud-starter-gateway'

234

}

235

```

236

237

### Spring Cloud Components

238

239

The Release Train manages versions for these Spring Cloud components:

240

241

**Service Discovery & Configuration:**

242

- **spring-cloud-commons** (4.3.0): Common abstractions and utilities across Spring Cloud

243

- **spring-cloud-config** (4.3.0): Externalized configuration management with Git, Vault, and database backends

244

- **spring-cloud-consul** (4.3.0): Service discovery and configuration using HashiCorp Consul

245

- **spring-cloud-zookeeper** (4.3.0): Service discovery and configuration using Apache ZooKeeper

246

- **spring-cloud-kubernetes** (3.3.0): Kubernetes-native service discovery and configuration

247

248

**API Gateway & Routing:**

249

- **spring-cloud-gateway** (4.3.0): Reactive API gateway with routing, filtering, and rate limiting

250

- **spring-cloud-netflix** (4.3.0): Netflix OSS integrations including Eureka service registry

251

252

**Communication & Integration:**

253

- **spring-cloud-openfeign** (4.3.0): Declarative REST clients with load balancing and circuit breakers

254

- **spring-cloud-stream** (4.3.0): Event-driven microservices framework with message broker abstractions

255

- **spring-cloud-bus** (4.3.0): Event bus for distributed configuration changes and management events

256

257

**Resilience & Monitoring:**

258

- **spring-cloud-circuitbreaker** (3.3.0): Circuit breaker implementations with Resilience4j and Spring Retry

259

- **spring-cloud-contract** (4.3.0): Consumer-driven contract testing for microservices

260

261

**Functions & Tasks:**

262

- **spring-cloud-function** (4.3.0): Function-as-a-Service abstractions for serverless computing

263

- **spring-cloud-task** (3.3.0): Short-lived microservices and batch processing

264

265

**Security & Secrets:**

266

- **spring-cloud-vault** (4.3.0): HashiCorp Vault integration for secrets management

267

268

### Spring Cloud Starter Parent

269

270

Extends Spring Boot's starter parent to provide complete Spring Cloud project configuration including dependency management, repository setup, and build profiles.

271

272

```xml { .api }

273

<parent>

274

<groupId>org.springframework.cloud</groupId>

275

<artifactId>spring-cloud-starter-parent</artifactId>

276

<version>2025.0.0</version>

277

<relativePath/>

278

</parent>

279

```

280

281

**Parent Chain:**

282

283

```xml { .api }

284

<!-- Your Project -->

285

<parent>

286

<groupId>org.springframework.cloud</groupId>

287

<artifactId>spring-cloud-starter-parent</artifactId>

288

<version>2025.0.0</version>

289

</parent>

290

291

<!-- Which extends -->

292

<parent>

293

<groupId>org.springframework.boot</groupId>

294

<artifactId>spring-boot-starter-parent</artifactId>

295

<version>3.5.0</version>

296

</parent>

297

```

298

299

**Included Dependency Management:**

300

301

```xml { .api }

302

<dependencyManagement>

303

<dependencies>

304

<dependency>

305

<groupId>org.springframework.cloud</groupId>

306

<artifactId>spring-cloud-dependencies</artifactId>

307

<version>2025.0.0</version>

308

<type>pom</type>

309

<scope>import</scope>

310

</dependency>

311

</dependencies>

312

</dependencyManagement>

313

```

314

315

### Repository Configuration

316

317

The parent POM provides Maven repository configurations through build profiles for accessing Spring's repositories during development and CI/CD.

318

319

```xml { .api }

320

<profile>

321

<id>spring</id>

322

<repositories>

323

<repository>

324

<id>spring-snapshots</id>

325

<name>Spring Snapshots</name>

326

<url>https://repo.spring.io/libs-snapshot-local</url>

327

<snapshots>

328

<enabled>true</enabled>

329

</snapshots>

330

</repository>

331

<repository>

332

<id>spring-milestones</id>

333

<name>Spring Milestones</name>

334

<url>https://repo.spring.io/libs-milestone-local</url>

335

<snapshots>

336

<enabled>false</enabled>

337

</snapshots>

338

</repository>

339

<repository>

340

<id>spring-releases</id>

341

<name>Spring Releases</name>

342

<url>https://repo.spring.io/release</url>

343

<snapshots>

344

<enabled>false</enabled>

345

</snapshots>

346

</repository>

347

</repositories>

348

</profile>

349

```

350

351

**Profile Activation:**

352

353

```bash { .api }

354

# Development build with Spring repositories

355

mvn clean install -Pspring

356

357

# Milestone release

358

mvn clean deploy -Pmilestone

359

360

# Maven Central release with signing

361

mvn clean deploy -Pcentral

362

```

363

364

### Distribution Management

365

366

Configures publishing destinations for different deployment scenarios:

367

368

```xml { .api }

369

<distributionManagement>

370

<repository>

371

<id>repo.spring.io</id>

372

<name>Spring Release Repository</name>

373

<url>https://repo.spring.io/libs-release-local</url>

374

</repository>

375

<snapshotRepository>

376

<id>repo.spring.io</id>

377

<name>Spring Snapshot Repository</name>

378

<url>https://repo.spring.io/libs-snapshot-local</url>

379

</snapshotRepository>

380

</distributionManagement>

381

```

382

383

### Build Profiles

384

385

Four specialized build profiles for different deployment scenarios:

386

387

```xml { .api }

388

<!-- Spring Profile: Development with Spring repositories -->

389

<profile>

390

<id>spring</id>

391

<!-- Provides spring-snapshots, spring-milestones, spring-releases repositories -->

392

</profile>

393

394

<!-- Milestone Profile: Milestone release distribution -->

395

<profile>

396

<id>milestone</id>

397

<!-- Publishes to https://repo.spring.io/libs-milestone-local -->

398

</profile>

399

400

<!-- Central Profile: Maven Central with GPG signing -->

401

<profile>

402

<id>central</id>

403

<build>

404

<plugins>

405

<plugin>

406

<groupId>org.apache.maven.plugins</groupId>

407

<artifactId>maven-gpg-plugin</artifactId>

408

<executions>

409

<execution>

410

<id>sign-artifacts</id>

411

<phase>verify</phase>

412

<goals>

413

<goal>sign</goal>

414

</goals>

415

</execution>

416

</executions>

417

</plugin>

418

</plugins>

419

</build>

420

<distributionManagement>

421

<snapshotRepository>

422

<id>sonatype-nexus-snapshots</id>

423

<name>Sonatype Nexus Snapshots</name>

424

<url>https://s01.oss.sonatype.org/content/repositories/snapshots/</url>

425

</snapshotRepository>

426

<repository>

427

<id>sonatype-nexus-staging</id>

428

<name>Nexus Release Repository</name>

429

<url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/</url>

430

</repository>

431

</distributionManagement>

432

</profile>

433

```

434

435

## Properties

436

437

Configuration properties available to child projects:

438

439

```xml { .api }

440

<properties>

441

<spring-cloud.version>2025.0.0</spring-cloud.version>

442

<main.basedir>${basedir}/../..</main.basedir>

443

</properties>

444

```

445

446

Child projects can reference these properties:

447

448

```xml { .api }

449

<properties>

450

<my.custom.version>${spring-cloud.version}</my.custom.version>

451

</properties>

452

```

453

454

## Usage Examples

455

456

### Configuration Server with BOM

457

458

```xml { .api }

459

<?xml version="1.0" encoding="UTF-8"?>

460

<project xmlns="http://maven.apache.org/POM/4.0.0">

461

<modelVersion>4.0.0</modelVersion>

462

463

<parent>

464

<groupId>org.springframework.boot</groupId>

465

<artifactId>spring-boot-starter-parent</artifactId>

466

<version>3.5.0</version>

467

<relativePath/>

468

</parent>

469

470

<groupId>com.example</groupId>

471

<artifactId>config-server</artifactId>

472

<version>1.0.0</version>

473

474

<dependencyManagement>

475

<dependencies>

476

<dependency>

477

<groupId>org.springframework.cloud</groupId>

478

<artifactId>spring-cloud-dependencies</artifactId>

479

<version>2025.0.0</version>

480

<type>pom</type>

481

<scope>import</scope>

482

</dependency>

483

</dependencies>

484

</dependencyManagement>

485

486

<dependencies>

487

<dependency>

488

<groupId>org.springframework.cloud</groupId>

489

<artifactId>spring-cloud-config-server</artifactId>

490

</dependency>

491

<dependency>

492

<groupId>org.springframework.boot</groupId>

493

<artifactId>spring-boot-starter-web</artifactId>

494

</dependency>

495

</dependencies>

496

</project>

497

```

498

499

### Microservice with Parent POM

500

501

```xml { .api }

502

<?xml version="1.0" encoding="UTF-8"?>

503

<project xmlns="http://maven.apache.org/POM/4.0.0">

504

<modelVersion>4.0.0</modelVersion>

505

506

<parent>

507

<groupId>org.springframework.cloud</groupId>

508

<artifactId>spring-cloud-starter-parent</artifactId>

509

<version>2025.0.0</version>

510

<relativePath/>

511

</parent>

512

513

<groupId>com.example</groupId>

514

<artifactId>user-service</artifactId>

515

<version>1.0.0</version>

516

517

<dependencies>

518

<dependency>

519

<groupId>org.springframework.boot</groupId>

520

<artifactId>spring-boot-starter-web</artifactId>

521

</dependency>

522

<dependency>

523

<groupId>org.springframework.cloud</groupId>

524

<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>

525

</dependency>

526

<dependency>

527

<groupId>org.springframework.cloud</groupId>

528

<artifactId>spring-cloud-starter-config</artifactId>

529

</dependency>

530

<dependency>

531

<groupId>org.springframework.cloud</groupId>

532

<artifactId>spring-cloud-starter-openfeign</artifactId>

533

</dependency>

534

</dependencies>

535

</project>

536

```

537

538

### API Gateway with Circuit Breaker

539

540

```xml { .api }

541

<?xml version="1.0" encoding="UTF-8"?>

542

<project xmlns="http://maven.apache.org/POM/4.0.0">

543

<modelVersion>4.0.0</modelVersion>

544

545

<parent>

546

<groupId>org.springframework.cloud</groupId>

547

<artifactId>spring-cloud-starter-parent</artifactId>

548

<version>2025.0.0</version>

549

<relativePath/>

550

</parent>

551

552

<groupId>com.example</groupId>

553

<artifactId>api-gateway</artifactId>

554

<version>1.0.0</version>

555

556

<dependencies>

557

<dependency>

558

<groupId>org.springframework.cloud</groupId>

559

<artifactId>spring-cloud-starter-gateway</artifactId>

560

</dependency>

561

<dependency>

562

<groupId>org.springframework.cloud</groupId>

563

<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>

564

</dependency>

565

<dependency>

566

<groupId>org.springframework.cloud</groupId>

567

<artifactId>spring-cloud-starter-circuitbreaker-reactor-resilience4j</artifactId>

568

</dependency>

569

</dependencies>

570

</project>

571

```

572

573

### Gradle Project with BOM

574

575

```gradle { .api }

576

plugins {

577

id 'org.springframework.boot' version '3.5.0'

578

id 'io.spring.dependency-management' version '1.1.0'

579

id 'java'

580

}

581

582

group = 'com.example'

583

version = '1.0.0'

584

sourceCompatibility = '17'

585

586

dependencyManagement {

587

imports {

588

mavenBom 'org.springframework.cloud:spring-cloud-dependencies:2025.0.0'

589

}

590

}

591

592

dependencies {

593

implementation 'org.springframework.boot:spring-boot-starter-web'

594

implementation 'org.springframework.cloud:spring-cloud-starter-gateway'

595

implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client'

596

implementation 'org.springframework.cloud:spring-cloud-starter-config'

597

testImplementation 'org.springframework.boot:spring-boot-starter-test'

598

}

599

```

600

601

## Maven Coordinates

602

603

### spring-cloud-dependencies

604

605

```xml { .api }

606

<groupId>org.springframework.cloud</groupId>

607

<artifactId>spring-cloud-dependencies</artifactId>

608

<version>2025.0.0</version>

609

<packaging>pom</packaging>

610

```

611

612

### spring-cloud-starter-parent

613

614

```xml { .api }

615

<groupId>org.springframework.cloud</groupId>

616

<artifactId>spring-cloud-starter-parent</artifactId>

617

<version>2025.0.0</version>

618

<packaging>pom</packaging>

619

```