Spring Cloud Starters are curated sets of dependencies focused on a particular type of workload. Including a starter on your classpath is really just a shorthand for including its dependencies, but it makes it easier to organize your code and easier to remember what the depdnencies are for. (See also Spring Boot starter projects.) Starters provided include:
-
spring-cloud-starter
-
spring-cloud-starter-bus-amqp
-
spring-cloud-starter-cloudfoundry
-
spring-cloud-starter-eureka
-
spring-cloud-starter-eureka-server
-
spring-cloud-starter-feign
-
spring-cloud-starter-hystrix
-
spring-cloud-starter-hystrix-dashboard
-
spring-cloud-starter-oauth2
-
spring-cloud-starter-ribbon
-
spring-cloud-starter-security
-
spring-cloud-starter-turbine
-
spring-cloud-starter-turbine-amqp
-
spring-cloud-starter-zuul
Since there is no code to compile in the starters they should do not need to compile, but a compiler has to be available because they are built and deployed as JAR artifacts. To install locally:
$ mvn install
and to deploy snapshots to repo.spring.io:
$ mvn install -DaltSnapshotDeploymentRepository=repo.spring.io::default::https://repo.spring.io/libs-snapshot-local
for a RELEASE build use
$ mvn install -DaltReleaseDeploymentRepository=repo.spring.io::default::https://repo.spring.io/libs-release-local
and for Maven Central use
$ mvn install -P central -DaltReleaseDeploymentRepository=sonatype-nexus-staging::default::https://oss.sonatype.org/service/local/staging/deploy/maven2
(the "central" profile is available for all projects in Spring Cloud and it sets up the gpg jar signing, and the repository has to be specified separately for this project because it is a parent of the starter parent which users in turn have as their own parent).