== Spring Cloud Deployer
[frame=none, grid=none, caption=, width="75%", cols="^2,^2"] .Build Status by Branches | === | Main | 2.9.x | image:https://github.com/spring-cloud/spring-cloud-deployer/actions/workflows/build-snapshot-worker.yml/badge.svg[title="Build Snapshot Worker - Main" link="https://github.com/spring-cloud/spring-cloud-deployer/actions/workflows/build-snapshot-worker.yml"] image:https://github.com/spring-cloud/spring-cloud-deployer/actions/workflows/ci.yml/badge.svg[title="CI - Main" link="https://github.com/spring-cloud/spring-cloud-deployer/actions/workflows/ci.yml"] |
---|
image:https://github.com/spring-cloud/spring-cloud-deployer/actions/workflows/build-snapshot-worker.yml/badge.svg?branch=2.9.x[title="Build Snapshot Worker - 2.9.x", link="https://github.com/spring-cloud/spring-cloud-deployer/actions/workflows/build-snapshot-worker.yml?query=branch%3A2.9.x"] image:https://github.com/spring-cloud/spring-cloud-deployer/actions/workflows/ci.yml/badge.svg?branch=2.9.x[title="CI - 2.9.x", link="https://github.com/spring-cloud/spring-cloud-deployer/actions/workflows/ci.yml?query=branch%3A2.9.x"] | |===
The Spring Cloud Deployer project defines a Service Provider Interface (SPI) for deploying long lived applications and short lived tasks.
== Components
The https://github.com/spring-cloud/spring-cloud-deployer/tree/master/spring-cloud-deployer-spi[SPI] project defines the core interfaces, including https://github.com/spring-cloud/spring-cloud-deployer/blob/master/spring-cloud-deployer-spi/src/main/java/org/springframework/cloud/deployer/spi/app/AppDeployer.java[AppDeployer] and https://github.com/spring-cloud/spring-cloud-deployer/blob/master/spring-cloud-deployer-spi/src/main/java/org/springframework/cloud/deployer/spi/task/TaskLauncher.java[TaskLauncher] as well as the core domain model.
The https://github.com/spring-cloud/spring-cloud-deployer/tree/master/spring-cloud-deployer-spi-test[SPI Test] project provides the basic test framework that any SPI implementation should use to verify its functionality.
The https://github.com/spring-cloud/spring-cloud-deployer/tree/master/spring-cloud-deployer-resource-maven[spring-cloud-deployer-resource-maven]
project provides support for referencing Maven artifacts via Spring's Resource
abstraction.
The https://github.com/spring-cloud/spring-cloud-deployer/tree/master/spring-cloud-deployer-resource-docker[spring-cloud-deployer-resource-docker]
project provides support for referencing Docker artifacts via Spring's Resource
abstraction.
The https://github.com/spring-cloud/spring-cloud-deployer/tree/master/spring-cloud-deployer-resource-support[spring-cloud-deployer-resource-support]
project provides various common support classes for working with Resources
, such as the
https://github.com/spring-cloud/spring-cloud-deployer/blob/master/spring-cloud-deployer-resource-support/src/main/java/org/springframework/cloud/deployer/resource/registry/UriRegistry.java[UriRegistry]
for maintaining the locations of app artifacts, and the
https://github.com/spring-cloud/spring-cloud-deployer/blob/master/spring-cloud-deployer-resource-support/src/main/java/org/springframework/cloud/deployer/resource/support/DelegatingResourceLoader.java[DelegatingResourceLoader]
for working with multiple ResourceLoader
implementations in a map with URI schemes as keys.
There is also an implementation of the SPI for running apps locally. That link is provided below along with other SPI implementations.
== Implementations
This deployer SPI has been implemented for several runtime environments. Here are the github locations:
=== Building
Clone the repo and type