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
6 days 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
🌐
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.
🌐
Maven Repository
mvnrepository.com › artifact › org.springframework.boot › spring-boot-maven-plugin
Maven Repository: org.springframework.boot » spring-boot-maven-plugin
6 days 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
🌐
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
🌐
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.
🌐
Maven Central
central.sonatype.com › artifact › org.springframework.boot › spring-boot
org.springframework.boot:spring-boot - Maven Central
<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.
🌐
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
🌐
Spring
docs.spring.io › spring-boot › docs › 2.1.5.RELEASE › reference › html › build-tool-plugins-maven-plugin.html
71. Spring Boot Maven Plugin
The Spring Boot Maven Plugin provides Spring Boot support in Maven, letting you package executable jar or war archives and run an application “in-place”. To use it, you must use Maven 3.2 (or later).
🌐
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.
🌐
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%
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 :)

🌐
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.
🌐
Spring
docs.spring.io › spring-boot › maven-plugin › run.html
Running your Application with Maven :: Spring Boot
Any attempt to pass any other Maven variable type (for example a List or a URL variable) will cause the variable expression to be passed literally (unevaluated). Environment variables defined this way take precedence over existing values. Application arguments can be specified using the arguments attribute. The following example sets two arguments: property1 and property2=42: <project> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <arguments> <argument>property1</argument> <argument>property2=${my.value}</argument> </arguments> </configuration> </plugin> </plugins> </build> </project>
🌐
Medium
medium.com › @resh123 › spring-boot-maven-plugin-explained-in-detail-learnjava-6e1adbf6681d
Spring Boot Maven Plugin Explained In Detail — LearnJava | by Reshma Bidikar | Medium
November 17, 2023 - The Spring Boot Maven plugin simplifies the process of building, packaging, and running Spring Boot applications using Maven.
🌐
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
🌐
Quora
quora.com › What-is-the-difference-between-a-Maven-and-Spring-Boot
What is the difference between a Maven and Spring Boot? - Quora
Answer (1 of 3): Maven 1. A project build and life cycle management tool 2. It provides directory structure 3. It can download project dependencies or libraries or jar files 4. It can generate java docs 5. It can run junit test cases 6. It can export jar or war of the project 7. It can deploy pr...
🌐
Maven Central Repository
search.maven.org › artifact › org.springframework.boot › spring-boot
org.springframework.boot:spring-boot:3.1.1
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot</artifactId> <version>4.0.1</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.