Parent pom providing dependency and plugin management for applications built with Maven
npx @tessl/cli install tessl/maven-org-springframework-boot--spring-boot-starter-parent@3.5.00
# Spring Boot Starter Parent
1
2
Spring Boot Starter Parent is a Maven parent POM that provides comprehensive dependency and plugin management for Spring Boot applications. It establishes build conventions, configures essential Maven plugins, and enables both traditional JVM deployments and native compilation with GraalVM for modern cloud-native applications.
3
4
## Package Information
5
6
- **Package Name**: spring-boot-starter-parent
7
- **Package Type**: maven
8
- **Language**: Java (Maven configuration)
9
- **Installation**: Declare as parent in `pom.xml`
10
11
## Core Usage
12
13
```xml
14
<parent>
15
<groupId>org.springframework.boot</groupId>
16
<artifactId>spring-boot-starter-parent</artifactId>
17
<version>3.5.3</version>
18
<relativePath/>
19
</parent>
20
```
21
22
## Basic Usage
23
24
```xml
25
<?xml version="1.0" encoding="UTF-8"?>
26
<project xmlns="http://maven.apache.org/POM/4.0.0"
27
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
28
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
29
http://maven.apache.org/xsd/maven-4.0.0.xsd">
30
<modelVersion>4.0.0</modelVersion>
31
32
<parent>
33
<groupId>org.springframework.boot</groupId>
34
<artifactId>spring-boot-starter-parent</artifactId>
35
<version>3.5.3</version>
36
<relativePath/>
37
</parent>
38
39
<groupId>com.example</groupId>
40
<artifactId>my-spring-boot-app</artifactId>
41
<version>1.0.0</version>
42
43
<properties>
44
<java.version>21</java.version>
45
</properties>
46
47
<dependencies>
48
<dependency>
49
<groupId>org.springframework.boot</groupId>
50
<artifactId>spring-boot-starter-web</artifactId>
51
</dependency>
52
</dependencies>
53
</project>
54
```
55
56
## Architecture
57
58
Spring Boot Starter Parent operates as a Maven parent POM providing:
59
60
- **Dependency Management**: Inherits from spring-boot-dependencies for consistent versioning
61
- **Plugin Management**: Pre-configured Maven plugins with sensible defaults
62
- **Property Configuration**: Standard properties for encoding, Java version, and compilation
63
- **Resource Processing**: Automatic filtering of application configuration files
64
- **Profile Support**: Native compilation and testing profiles for GraalVM
65
- **Build Conventions**: Consistent packaging and deployment configurations
66
67
## Capabilities
68
69
### Properties Configuration
70
71
Maven properties that control build behavior, resource processing, and compilation settings.
72
73
```xml { .api }
74
<!-- Core Properties -->
75
<properties>
76
<java.version>17</java.version>
77
<resource.delimiter>@</resource.delimiter>
78
<maven.compiler.release>${java.version}</maven.compiler.release>
79
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
80
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
81
<spring-boot.run.main-class>${start-class}</spring-boot.run.main-class>
82
</properties>
83
```
84
85
[Properties Configuration](./properties.md)
86
87
### Resource Management
88
89
Automatic resource filtering and processing for Spring Boot applications, handling configuration files and static resources.
90
91
```xml { .api }
92
<!-- Resource Configuration -->
93
<resources>
94
<resource>
95
<directory>${basedir}/src/main/resources</directory>
96
<filtering>true</filtering>
97
<includes>
98
<include>**/application*.yml</include>
99
<include>**/application*.yaml</include>
100
<include>**/application*.properties</include>
101
</includes>
102
</resource>
103
<resource>
104
<directory>${basedir}/src/main/resources</directory>
105
<excludes>
106
<exclude>**/application*.yml</exclude>
107
<exclude>**/application*.yaml</exclude>
108
<exclude>**/application*.properties</exclude>
109
</excludes>
110
</resource>
111
</resources>
112
```
113
114
[Resource Management](./resources.md)
115
116
### Plugin Management
117
118
Comprehensive Maven plugin management with pre-configured settings for compilation, testing, packaging, and deployment.
119
120
```xml { .api }
121
<!-- Core Plugin Management -->
122
<plugin>
123
<groupId>org.apache.maven.plugins</groupId>
124
<artifactId>maven-compiler-plugin</artifactId>
125
<configuration>
126
<parameters>true</parameters>
127
</configuration>
128
</plugin>
129
130
<plugin>
131
<groupId>org.springframework.boot</groupId>
132
<artifactId>spring-boot-maven-plugin</artifactId>
133
<executions>
134
<execution>
135
<id>repackage</id>
136
<goals>
137
<goal>repackage</goal>
138
</goals>
139
</execution>
140
</executions>
141
</plugin>
142
```
143
144
[Plugin Management](./plugins.md)
145
146
### Native Compilation Support
147
148
GraalVM native image compilation support for fast startup times and low memory footprint deployments.
149
150
```xml { .api }
151
<!-- Native Profile Configuration -->
152
<profile>
153
<id>native</id>
154
<build>
155
<plugins>
156
<plugin>
157
<groupId>org.graalvm.buildtools</groupId>
158
<artifactId>native-maven-plugin</artifactId>
159
<configuration>
160
<classesDirectory>${project.build.outputDirectory}</classesDirectory>
161
<requiredVersion>22.3</requiredVersion>
162
</configuration>
163
</plugin>
164
</plugins>
165
</build>
166
</profile>
167
```
168
169
[Native Compilation](./native.md)
170
171
## Types
172
173
```xml { .api }
174
<!-- Maven Parent Structure -->
175
<parent>
176
<groupId>org.springframework.boot</groupId>
177
<artifactId>spring-boot-dependencies</artifactId>
178
<version>${project.version}</version>
179
</parent>
180
181
<!-- Packaging Configuration -->
182
<packaging>pom</packaging>
183
184
<!-- Property Placeholders -->
185
${java.version} <!-- Java version (default: 17) -->
186
${resource.delimiter} <!-- Resource delimiter (default: @) -->
187
${start-class} <!-- Main class placeholder -->
188
${project.build.sourceEncoding} <!-- Source encoding (UTF-8) -->
189
${project.reporting.outputEncoding} <!-- Reporting encoding (UTF-8) -->
190
```