Maven is a build and dependency manager. Basically, it allows you to build your code, while also managing your dependencies for you so that you don't have to download jars manually. Spring is the brand for a bunch of different frameworks and libraries. You have spring-web for making web applications, spring-data for database stuff and so forth. There's a lot (check it out on their website). This is as dumb I can make it. Answer from _Atomfinger_ on reddit.com
🌐
Maven Repository
mvnrepository.com › artifact › org.springframework.boot › spring-boot
Maven Repository: org.springframework.boot » spring-boot
1 week ago - It takes an opinionated view of the Spring platform and third-party libraries so you can get started with minimum configuration. ... aar android apache api arm assets build build-system bundle client clojure cloud config cran data database eclipse example extension framework github gradle groovy io ios javascript jvm kotlin library logging maven mobile module npm osgi persistence plugin resources rlang sdk server service spring sql starter testing tools ui web webapp
🌐
GitHub
github.com › spring-projects › spring-boot
GitHub - spring-projects/spring-boot: Spring Boot helps you to create Spring-powered, production-grade applications and services with absolute minimum fuss. · GitHub
You don’t need to build from source to use Spring Boot. If you want to try out the latest and greatest, Spring Boot can be built and published to your local Maven cache using the Gradle wrapper.
Starred by 80.3K users
Forked by 41.9K users
Languages   Java 99.5% | Kotlin 0.2% | HTML 0.1% | JavaScript 0.1% | Groovy 0.1% | Shell 0.0%
🌐
Medium
medium.com › @youeleven › understanding-maven-with-spring-boot-9a4e9becb1d9
Understanding Maven with Spring Boot | by youeleven | Medium
May 6, 2024 - Maven is a powerful build automation tool primarily used for Java projects. When combined with Spring Boot, it streamlines the development process by managing dependencies, building projects, and handling configurations efficiently.
🌐
Maven Repository
mvnrepository.com › artifact › org.springframework.boot › spring-boot-maven-plugin
Maven Repository: org.springframework.boot » spring-boot-maven-plugin
1 week ago - Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can just run ... aar android apache api arm assets build build-system bundle client clojure cloud config cran data database eclipse example extension framework github gradle groovy io ios javascript jvm kotlin library logging maven mobile module npm osgi persistence plugin resources rlang sdk server service spring sql starter testing tools ui web webapp
🌐
Spring
docs.spring.io › spring-boot › maven-plugin › index.html
Maven Plugin :: Spring Boot
It allows you to package executable jar or war archives, run Spring Boot applications, generate build information and start your Spring Boot application prior to running integration tests. To use it, you must use Maven 3.6.3 or later.
🌐
Reddit
reddit.com › r/javahelp › what is maven and spring and why do i need them for a successful career in java?
r/javahelp on Reddit: What is Maven and Spring and why do I need them for a successful career in Java?
October 5, 2021 -

Please dumb it down. I started a Udemy course on Spring and so far has confused me more than helped. I am so so in Java after 1.5(still in progress) semesters of it.

Find elsewhere
🌐
Baeldung
baeldung.com › home › spring › spring boot › difference between spring-boot:repackage and maven package
Difference Between spring-boot:repackage and Maven package | Baeldung
April 24, 2025 - We know when we want to package our application in a JAR or WAR artifact using Maven, we can use mvn package. However, the Spring Boot Maven Plugin ships with a repackage goal, and it’s called in an mvn command as well.
🌐
Spring
spring.io › guides › gs › spring-boot
Getting Started | Building an Application with Spring Boot
This project is configured to fit the examples in this tutorial. ... Navigate to https://start.spring.io. This service pulls in all the dependencies you need for an application and does most of the setup for you.
🌐
DevGenius
blog.devgenius.io › maven-mastery-with-spring-boot-65a9402ba53e
Maven Mastery with Spring Boot
2 weeks ago - Maven is a build automation and project management tool. At its core it does three things: dependency management, build lifecycle management, and project information management.
🌐
GeeksforGeeks
geeksforgeeks.org › advance java › spring-boot
Spring Boot Tutorial - Learn Spring Boot - GeeksforGeeks
3 weeks ago - To work effectively with Spring Boot, a solid understanding of core Java and essential Spring concepts is important. Knowledge of build tools such as Maven or Gradle, along with databases and SQL for JPA/Hibernate integration, will also help in building robust applications.
🌐
Maven Central
central.sonatype.com › artifact › org.springframework.boot › spring-boot
Maven Central: org.springframework.boot:spring-boot
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot</artifactId> <version>4.1.0-M3</version> </dependency> ... <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <!-- This module was also published with a richer model, Gradle metadata, --> <!-- which should be used instead.
🌐
Spring
docs.spring.io › spring-boot › installing.html
Installing Spring Boot :: Spring Boot
If you do not already have Maven installed, you can follow the instructions at maven.apache.org. Spring Boot dependencies use the org.springframework.boot group id. Typically, your Maven POM file inherits from the spring-boot-starter-parent project and declares dependencies to one or more starters.
🌐
Baeldung
baeldung.com › home › spring › spring boot › spring boot: configuring a main class
Spring Boot: Configuring a Main Class | Baeldung
August 22, 2025 - Learn how to configure your Spring Boot application's main class in Maven and Gradle.
🌐
Maven Repository
mvnrepository.com › artifact › org.springframework.boot
Maven Repository: org.springframework.boot
It takes an opinionated view of the Spring platform and third-party libraries so you can get started with minimum configuration. ... aar android apache api arm assets build build-system bundle client clojure cloud config cran data database eclipse example extension framework github gradle groovy io ios javascript jvm kotlin library logging maven mobile module npm osgi persistence plugin resources rlang sdk server service spring sql starter testing tools ui web webapp
🌐
Maven Repository
mvnrepository.com › artifact › org.springframework.boot › spring-boot-dependencies
Maven Repository: org.springframework.boot » spring-boot-dependencies
1 week ago - Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can just run ... aar android apache api arm assets build build-system bundle client clojure cloud config cran data database eclipse example extension framework github gradle groovy io ios javascript ...
Top answer
1 of 3
7

Is spring-boot:run a goal as I understand it to be

In fact, spring-boot is a maven plugin and run is one of its goals.

Here is the official documentation of this plugin.

In that documentation, I didn't find the default maven phase in which this goal is executed. But from the GitHub source code, I founnd out that this goal is executed in the TEST_COMPILE phase.

only specifying a phase as a target will run the other previous phases in order, not directly specifying a goal.

In fact, this is how maven works. Here is an introduction to the maven lifecycle.

Where is the configuration file for all of this located?

It is defined in your spring-boot pom parent:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>${spring-boot-starter-parent.version}</version>
</parent>
2 of 3
6

As the other answer misses a bit of the information I was looking for, I thought I'd add the results of my research in case anyone else is curious. Looking in

C:\HOME_DIR.m2\repository\org\springframework\boot\spring-boot-maven-plugin\VERSION_NUMBER\META-INF\maven\plugin.xml

gives the configuration file for most of the related goals for spring with maven. Specifically, the snippet below describes how the spring-boot:run goal works.

<mojo>
      <goal>run</goal>
      <description>Run an executable archive application.</description>
      <requiresDependencyResolution>test</requiresDependencyResolution>
      <requiresDirectInvocation>false</requiresDirectInvocation>
      <requiresProject>true</requiresProject>
      <requiresReports>false</requiresReports>
      <aggregator>false</aggregator>
      <requiresOnline>false</requiresOnline>
      <inheritedByDefault>true</inheritedByDefault>
      <phase>validate</phase>
      <executePhase>test-compile</executePhase>
      <implementation>org.springframework.boot.maven.RunMojo</implementation>
      <language>java</language>
      <instantiationStrategy>per-lookup</instantiationStrategy>
      <executionStrategy>once-per-session</executionStrategy>
      <since>1.0.0</since>
      <threadSafe>false</threadSafe>
      ...
</mojo>

Specifically, the <executePhase> tag (detailed partially at https://maven.apache.org/developers/mojo-api-specification.html), which (I believe) lets this goal execute a different phase as it's run.

I missed this detail before (it doesn't seem to be documented anywhere very well either). Either way, this explanation is satisfactory enough for me. If anyone finds better documentation for this tag, I'd appreciate a link :)

🌐
Maven Central
central.sonatype.com › artifact › org.springframework.boot › spring-boot-starter-web
Maven Central: org.springframework.boot:spring-boot-starter-web
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>4.1.0-M3</version> </dependency> ... <?xml version="1.0" encoding="UTF-8"?> <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <!-- This module was also published with a richer model, Gradle metadata, --> <!-- which should be used instead.
🌐
Maven Central
repo1.maven.org › maven2 › org › springframework › boot
Central Repository: org/springframework/boot
10-23 19:23 - spring-boot-testcontainers/ 2023-05-18 23:05 - spring-boot-thymeleaf/ 2025-07-24 16:32 - spring-boot-tomcat/ 2025-07-24 16:32 - spring-boot-tomcat-runtime/ 2025-10-23 19:23 - spring-boot-tools/ 2014-04-01 12:59 - spring-boot-tracing/ 2025-07-24 16:32 - spring-boot-transaction/ 2025-10-23 19:23 - spring-boot-tx/ 2025-07-24 16:32 - spring-boot-undertow/ 2025-07-24 16:32 - spring-boot-validation/ 2025-07-24 16:32 - spring-boot-versions/ 2014-06-10 21:06 - spring-boot-web-server/ 2025-07-24 16:32 - spring-boot-web-server-test/ 2025-07-24 16:32 - spring-boot-webclient/ 2025-07-24 16:3
🌐
SpringDoc
springdoc.org
OpenAPI 3 Library for spring-boot
https://github.com/springdoc/springdoc-openapi-maven-plugin · This plugin allows you to generate an OpenAPI 3 specification for a Spring Boot application from a Gradle build.