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.0Spring 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.
pom.xml<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.5.3</version>
<relativePath/>
</parent><?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.5.3</version>
<relativePath/>
</parent>
<groupId>com.example</groupId>
<artifactId>my-spring-boot-app</artifactId>
<version>1.0.0</version>
<properties>
<java.version>21</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
</project>Spring Boot Starter Parent operates as a Maven parent POM providing:
Maven properties that control build behavior, resource processing, and compilation settings.
<!-- Core Properties -->
<properties>
<java.version>17</java.version>
<resource.delimiter>@</resource.delimiter>
<maven.compiler.release>${java.version}</maven.compiler.release>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<spring-boot.run.main-class>${start-class}</spring-boot.run.main-class>
</properties>Automatic resource filtering and processing for Spring Boot applications, handling configuration files and static resources.
<!-- Resource Configuration -->
<resources>
<resource>
<directory>${basedir}/src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>**/application*.yml</include>
<include>**/application*.yaml</include>
<include>**/application*.properties</include>
</includes>
</resource>
<resource>
<directory>${basedir}/src/main/resources</directory>
<excludes>
<exclude>**/application*.yml</exclude>
<exclude>**/application*.yaml</exclude>
<exclude>**/application*.properties</exclude>
</excludes>
</resource>
</resources>Comprehensive Maven plugin management with pre-configured settings for compilation, testing, packaging, and deployment.
<!-- Core Plugin Management -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<parameters>true</parameters>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<id>repackage</id>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>GraalVM native image compilation support for fast startup times and low memory footprint deployments.
<!-- Native Profile Configuration -->
<profile>
<id>native</id>
<build>
<plugins>
<plugin>
<groupId>org.graalvm.buildtools</groupId>
<artifactId>native-maven-plugin</artifactId>
<configuration>
<classesDirectory>${project.build.outputDirectory}</classesDirectory>
<requiredVersion>22.3</requiredVersion>
</configuration>
</plugin>
</plugins>
</build>
</profile><!-- Maven Parent Structure -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${project.version}</version>
</parent>
<!-- Packaging Configuration -->
<packaging>pom</packaging>
<!-- Property Placeholders -->
${java.version} <!-- Java version (default: 17) -->
${resource.delimiter} <!-- Resource delimiter (default: @) -->
${start-class} <!-- Main class placeholder -->
${project.build.sourceEncoding} <!-- Source encoding (UTF-8) -->
${project.reporting.outputEncoding} <!-- Reporting encoding (UTF-8) -->