or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

index.mdnative.mdplugins.mdproperties.mdresources.md
tile.json

tessl/maven-org-springframework-boot--spring-boot-starter-parent

Parent pom providing dependency and plugin management for applications built with Maven

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
mavenpkg:maven/org.springframework.boot/spring-boot-starter-parent@3.5.x

To install, run

npx @tessl/cli install tessl/maven-org-springframework-boot--spring-boot-starter-parent@3.5.0

index.mddocs/

Spring Boot Starter Parent

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.

Package Information

  • Package Name: spring-boot-starter-parent
  • Package Type: maven
  • Language: Java (Maven configuration)
  • Installation: Declare as parent in pom.xml

Core Usage

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.5.3</version>
    <relativePath/>
</parent>

Basic Usage

<?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>

Architecture

Spring Boot Starter Parent operates as a Maven parent POM providing:

  • Dependency Management: Inherits from spring-boot-dependencies for consistent versioning
  • Plugin Management: Pre-configured Maven plugins with sensible defaults
  • Property Configuration: Standard properties for encoding, Java version, and compilation
  • Resource Processing: Automatic filtering of application configuration files
  • Profile Support: Native compilation and testing profiles for GraalVM
  • Build Conventions: Consistent packaging and deployment configurations

Capabilities

Properties Configuration

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>

Properties Configuration

Resource Management

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>

Resource Management

Plugin Management

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>

Plugin Management

Native Compilation Support

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>

Native Compilation

Types

<!-- 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) -->