[[build-image.build-image-goal]]
= `spring-boot:build-image`

`org.springframework.boot:spring-boot-maven-plugin:3.3.0-SNAPSHOT`

Package an application into an OCI image using a buildpack, forking the lifecycle to make sure that `package` ran. This goal is suitable for command-line invocation. If you need to configure a goal `execution` in your build, use `build-image-no-fork` instead.



[[build-image.build-image-goal.required-parameters]]
== Required parameters

[cols="3,2,3"]
|===
| Name | Type | Default

| xref:#build-image.build-image-goal.parameter-details.source-directory[sourceDirectory]
| `File`
| `${project.build.directory}`

|===



[[build-image.build-image-goal.optional-parameters]]
== Optional parameters

[cols="3,2,3"]
|===
| Name | Type | Default

| xref:#build-image.build-image-goal.parameter-details.classifier[classifier]
| `String`
|

| xref:#build-image.build-image-goal.parameter-details.docker[docker]
| `xref:maven-plugin:api/java/org/springframework/boot/maven/Docker.html[Docker]`
|

| xref:#build-image.build-image-goal.parameter-details.exclude-devtools[excludeDevtools]
| `boolean`
| `true`

| xref:#build-image.build-image-goal.parameter-details.exclude-docker-compose[excludeDockerCompose]
| `boolean`
| `true`

| xref:#build-image.build-image-goal.parameter-details.exclude-group-ids[excludeGroupIds]
| `String`
|

| xref:#build-image.build-image-goal.parameter-details.excludes[excludes]
| `List`
|

| xref:#build-image.build-image-goal.parameter-details.image[image]
| `xref:maven-plugin:api/java/org/springframework/boot/maven/Image.html[Image]`
|

| xref:#build-image.build-image-goal.parameter-details.include-system-scope[includeSystemScope]
| `boolean`
| `false`

| xref:#build-image.build-image-goal.parameter-details.include-tools[includeTools]
| `boolean`
| `true`

| xref:#build-image.build-image-goal.parameter-details.includes[includes]
| `List`
|

| xref:#build-image.build-image-goal.parameter-details.layers[layers]
| `xref:maven-plugin:api/java/org/springframework/boot/maven/Layers.html[Layers]`
|

| xref:#build-image.build-image-goal.parameter-details.layout[layout]
| `xref:maven-plugin:api/java/org/springframework/boot/maven/AbstractPackagerMojo.LayoutType.html[LayoutType]`
|

| xref:#build-image.build-image-goal.parameter-details.layout-factory[layoutFactory]
| `xref:api:java/org/springframework/boot/loader/tools/LayoutFactory.html[LayoutFactory]`
|

| xref:#build-image.build-image-goal.parameter-details.loader-implementation[loaderImplementation]
| `xref:api:java/org/springframework/boot/loader/tools/LoaderImplementation.html[LoaderImplementation]`
|

| xref:#build-image.build-image-goal.parameter-details.main-class[mainClass]
| `String`
|

| xref:#build-image.build-image-goal.parameter-details.skip[skip]
| `boolean`
| `false`

|===



[[build-image.build-image-goal.parameter-details]]
== Parameter details



[[build-image.build-image-goal.parameter-details.classifier]]
=== `classifier`
Classifier used when finding the source archive.

[cols="10h,90"]
|===

| Name
| `classifier`

| Type
| `java.lang.String`

| Default value
|

| User property
|

| Since
| `2.3.0`

|===


[[build-image.build-image-goal.parameter-details.docker]]
=== `docker`
Docker configuration options.

[cols="10h,90"]
|===

| Name
| `docker`

| Type
| `xref:maven-plugin:api/java/org/springframework/boot/maven/Docker.html[org.springframework.boot.maven.Docker]`

| Default value
|

| User property
|

| Since
| `2.4.0`

|===


[[build-image.build-image-goal.parameter-details.exclude-devtools]]
=== `excludeDevtools`
Exclude Spring Boot devtools from the repackaged archive.

[cols="10h,90"]
|===

| Name
| `excludeDevtools`

| Type
| `boolean`

| Default value
| `true`

| User property
| ``spring-boot.repackage.excludeDevtools``

| Since
| `1.3.0`

|===


[[build-image.build-image-goal.parameter-details.exclude-docker-compose]]
=== `excludeDockerCompose`
Exclude Spring Boot dev services from the repackaged archive.

[cols="10h,90"]
|===

| Name
| `excludeDockerCompose`

| Type
| `boolean`

| Default value
| `true`

| User property
| ``spring-boot.repackage.excludeDockerCompose``

| Since
| `3.1.0`

|===


[[build-image.build-image-goal.parameter-details.exclude-group-ids]]
=== `excludeGroupIds`
Comma separated list of groupId names to exclude (exact match).

[cols="10h,90"]
|===

| Name
| `excludeGroupIds`

| Type
| `java.lang.String`

| Default value
|

| User property
| ``spring-boot.excludeGroupIds``

| Since
| `1.1.0`

|===


[[build-image.build-image-goal.parameter-details.excludes]]
=== `excludes`
Collection of artifact definitions to exclude. The `Exclude` element defines mandatory `groupId` and `artifactId` components and an optional `classifier` component. When configured as a property, values should be comma-separated with colon-separated components: `groupId:artifactId,groupId:artifactId:classifier`

[cols="10h,90"]
|===

| Name
| `excludes`

| Type
| `java.util.List`

| Default value
|

| User property
| ``spring-boot.excludes``

| Since
| `1.1.0`

|===


[[build-image.build-image-goal.parameter-details.image]]
=== `image`
Image configuration, with `builder`, `runImage`, `name`, `env`, `cleanCache`, `verboseLogging`, `pullPolicy`, and `publish` options.

[cols="10h,90"]
|===

| Name
| `image`

| Type
| `xref:maven-plugin:api/java/org/springframework/boot/maven/Image.html[org.springframework.boot.maven.Image]`

| Default value
|

| User property
|

| Since
| `2.3.0`

|===


[[build-image.build-image-goal.parameter-details.include-system-scope]]
=== `includeSystemScope`
Include system scoped dependencies.

[cols="10h,90"]
|===

| Name
| `includeSystemScope`

| Type
| `boolean`

| Default value
| `false`

| User property
|

| Since
| `1.4.0`

|===


[[build-image.build-image-goal.parameter-details.include-tools]]
=== `includeTools`
Include JAR tools.

[cols="10h,90"]
|===

| Name
| `includeTools`

| Type
| `boolean`

| Default value
| `true`

| User property
|

| Since
| `3.3.0`

|===


[[build-image.build-image-goal.parameter-details.includes]]
=== `includes`
Collection of artifact definitions to include. The `Include` element defines mandatory `groupId` and `artifactId` components and an optional `classifier` component. When configured as a property, values should be comma-separated with colon-separated components: `groupId:artifactId,groupId:artifactId:classifier`

[cols="10h,90"]
|===

| Name
| `includes`

| Type
| `java.util.List`

| Default value
|

| User property
| ``spring-boot.includes``

| Since
| `1.2.0`

|===


[[build-image.build-image-goal.parameter-details.layers]]
=== `layers`
Layer configuration with options to disable layer creation, exclude layer tools jar, and provide a custom layers configuration file.

[cols="10h,90"]
|===

| Name
| `layers`

| Type
| `xref:maven-plugin:api/java/org/springframework/boot/maven/Layers.html[org.springframework.boot.maven.Layers]`

| Default value
|

| User property
|

| Since
| `2.3.0`

|===


[[build-image.build-image-goal.parameter-details.layout]]
=== `layout`
The type of archive (which corresponds to how the dependencies are laid out inside it). Possible values are `JAR`, `WAR`, `ZIP`, `DIR`, `NONE`. Defaults to a guess based on the archive type.

[cols="10h,90"]
|===

| Name
| `layout`

| Type
| `xref:maven-plugin:api/java/org/springframework/boot/maven/AbstractPackagerMojo.LayoutType.html[org.springframework.boot.maven.AbstractPackagerMojo$LayoutType]`

| Default value
|

| User property
|

| Since
| `2.3.11`

|===


[[build-image.build-image-goal.parameter-details.layout-factory]]
=== `layoutFactory`
The layout factory that will be used to create the executable archive if no explicit layout is set. Alternative layouts implementations can be provided by 3rd parties.

[cols="10h,90"]
|===

| Name
| `layoutFactory`

| Type
| `xref:api:java/org/springframework/boot/loader/tools/LayoutFactory.html[org.springframework.boot.loader.tools.LayoutFactory]`

| Default value
|

| User property
|

| Since
| `2.3.11`

|===


[[build-image.build-image-goal.parameter-details.loader-implementation]]
=== `loaderImplementation`
The loader implementation that should be used.

[cols="10h,90"]
|===

| Name
| `loaderImplementation`

| Type
| `xref:api:java/org/springframework/boot/loader/tools/LoaderImplementation.html[org.springframework.boot.loader.tools.LoaderImplementation]`

| Default value
|

| User property
|

| Since
| `3.2.0`

|===


[[build-image.build-image-goal.parameter-details.main-class]]
=== `mainClass`
The name of the main class. If not specified the first compiled class found that contains a `main` method will be used.

[cols="10h,90"]
|===

| Name
| `mainClass`

| Type
| `java.lang.String`

| Default value
|

| User property
|

| Since
| `1.0.0`

|===


[[build-image.build-image-goal.parameter-details.skip]]
=== `skip`
Skip the execution.

[cols="10h,90"]
|===

| Name
| `skip`

| Type
| `boolean`

| Default value
| `false`

| User property
| ``spring-boot.build-image.skip``

| Since
| `2.3.0`

|===


[[build-image.build-image-goal.parameter-details.source-directory]]
=== `sourceDirectory`
Directory containing the source archive.

[cols="10h,90"]
|===

| Name
| `sourceDirectory`

| Type
| `java.io.File`

| Default value
| `${project.build.directory}`

| User property
|

| Since
| `2.3.0`

|===
