spring-cloud-deployer icon indicating copy to clipboard operation
spring-cloud-deployer copied to clipboard

The Spring Cloud Deployer project defines an SPI for deploying long lived applications and short lived tasks

== Spring Cloud Deployer image:https://build.spring.io/plugins/servlet/wittified/build-status/SCD-DEPMASTER[Build Status, link=https://build.spring.io/browse/SCD-DEPMASTER]

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:

  • https://github.com/spring-cloud/spring-cloud-deployer-local[Local]
  • https://github.com/spring-cloud/spring-cloud-deployer-cloudfoundry[Cloud Foundry]
  • https://github.com/spring-cloud/spring-cloud-deployer-yarn[YARN]
  • https://github.com/spring-cloud/spring-cloud-deployer-kubernetes[Kubernetes]
  • https://github.com/spring-cloud/spring-cloud-deployer-mesos[Mesos]

=== Building

Clone the repo and type


$ ./mvnw clean install