Spring Boot without Parent POM

There can be situations wherever you don't need the spring-boot-starter-parent dependency, but you need dependency management, you can utilize the <scope> tag as follows:

<dependencyManagement>  
<dependencies>  
<dependency><!-- Imports dependency management  -->  
<groupId>Enter Group ID</groupId>  
<artifactId>spring-boot-dependencies</artifactId>  
<version>2.2.2.RELEASE</version>  
<type>pom</type>  
<scope>import</scope>  
</dependency>  
</dependencies>  
</dependencyManagement>

Overrides are not allowed in the above dependencies. To achieve the override, you must add the entry in the <dependencyManagement> tag to your project before the spring-boot- dependencies entry.

In case, you need to upgrade another spring-data-eleasetrain, append the dependency to the pom.xml file as mentioned below:

<dependencyManagement>  
<dependencies>  
<!--Override Spring Data release train-->  
<dependency>  
<groupId>org.springframework.data</groupId>  
<artifactId>spring-data-releasetrain</artifactId>  
<version>Fowler-SR2</version>  
<type>pom</type>  
<scope>import</scope>  
</dependency>  
<dependency>  
<groupId>org.springframework.boot</groupId>  
<artifactId>spring-boot-dependencies</artifactId>  
<version>2.2.2.RELEASE</version>  
<type>pom</type>  
<scope>import</scope>  
</dependency>  
</dependencies>  
</dependencyManagement>  

Spring Boot Starters

Spring Boot provides a set of launchers that you can utilize to add jars to your classpath. Spring Boot's built-in starter makes development easier and faster. Spring-Boot-Starters is a dependency descriptor.

Every Spring Boot Framework accompanies the indistinguishable naming pattern: spring-boot-starter *, where * specify a distinct application type. In case, you are working on Spring and JPA for database admittance, you must comprehend the spring-boot-starter-data-JPA dependency in pom.xml file of your respective project.


Third Party Launcher

You can also include a third party launcher in your project. However, it does not utilize spring-boot-starter to include third-party dependencies. The spring-boot-starter is restrained for the definite Spring Boot artifact. It begins with the name of the project. Let’s understand more with the help of an example, suppose third party project name is zyz then the dependency name is zyz-spring-boot-starter. 

The Spring Boot Framework gives the application launchers for the org.springframework.boot group as mentioned below.

NameDescription
 spring-boot-starter-mailDispatch of Java Mail and Spring Framework emails is supported.
spring-boot-starter-data-couchbaseUtilized for documentation databases Couchbase and Spring Data Couchbase.
spring-boot-starter-artemis JMS messaging is performed with the help of Apache Artemis
spring-boot-starter-web-services It helps in providing the Spring web services.
 Spring-boot-starter-thymeleaf   It forms MVC web applications with the help of thymeleaf view.
spring-boot-starter-data-redisUtilized for Spring Data Redis and Redis key-value datastores with Jedis clients.
spring-boot-starter-webIt helps in fabricating the Web applications which also contains RESTful applications using Spring MVC. Tomcat is utilized as the default built-in container.
spring-boot-starter-data-gemfireUtilized for distributed datastores GemFire and Spring Data GemFire..
spring-boot-starter-activemqIt provides JMS messaging with the help of Apache ActiveMQ.
spring-boot-starter-data-elasticsearchElasticsearch search, analytics engine and Spring Data Elasticsearch utilizes this launcher.
spring-boot-starter-integrationSpring Integration is performed with the help of this.
spring-boot-starter-testSpring Boot applications are usually tested with the help of this launcher containing libraries together with JUnit, Hamcrest and Mockito.
spring-boot-starter-jdbcConnection pooling of JDBC with Tomcat JDBC is performed.
spring-boot-starter-mobile It helps to form web applications with the help of Spring Mobile.
spring-boot-starter-validationIt validates Java Beans in connection to Hibernate Validator.
spring-boot-starter-hateoasIt forms RESTful web applications depending on hypermedia with the help of Spring MVC and Spring HATEOAS.
spring-boot-starter-jerseyIt forms RESTful web applications with the help of JAXRS and Jersey which is the substitute to spring-boot-starter-web.
spring-boot-starter-data-neo4jIt gives contribution to Neo4j graph database and Spring Data Neo4j.
spring-boot-starter-data-ldapSpring Data LDAP utilizes this launcher.
spring-boot-starter-websocketWebSocket applications are formed with the help of this launcher. It takes support from Spring Framework's WebSocket .
spring-boot-starter-aopAspect-oriented programming is performed with the help of Spring AOP and AspectJ.
spring-boot-starter-amqpSpring AMQP, in addition to Rabbit MQ utilizes this launcher.
spring-boot-starter-data-cassandraUtilized for distributed databases Cassandra and Spring Data Cassandra.
spring-boot-starter-social-facebookSpring Social Facebook utilizes this
spring-boot-starter-jta-atomikosUtilized for JTA transactions using Atomikos.
spring-boot-starter-securityIt is utilized for Spring Security.
spring-boot-starter-mustacheUtilized to form MVC web applications with the help of the Mustache view.
spring-boot-starter-data-jpaUtilized for Spring Data JPA including Hibernate.
spring-boot-starterUtilized to set-up the kernel that also supports auto-configuration, logging, and YAML.
spring-boot-starter-groovy-templatesUtilized to form MVC web applications with the help of the Groovy template view.
spring-boot-starter-freemarkerUtilized to form MVC web applications with the help of the FreeMarker view.
spring-boot-starter-batchThis is utilized for Spring Batch.
spring-boot-starter-social-linkedinSpring Social LinkedIn uses this launcher.
spring-boot-starter-cacheIt provides Spring Framework's caching support.
spring-boot-starter-data-solrUtilized for the Apache Solr search platform with the help of Spring Data Solr.
spring-boot-starter-data-mongodbMongoDB document-oriented database utilize this that combines with the Spring Data MongoDB.
spring-boot-starter-jooqUtilized by jOOQ to access SQL databases. This is a substitute to spring-boot-starter-data-JPA or spring-boot-starter-jdbc.
spring-boot-starter-cloud-connectorsUtilized with Spring Cloud Connectors to easily connect to services on cloud platforms such as Cloud Foundry and Heroku
spring-boot-starter-jta-bitronixUtilized for JTA transactions which can be done by using Bitronix.
spring-boot-starter-social-twitterSpring Social Twitter utilizes this launcher.