# Quarkus Maven Plugin

The Quarkus Maven Plugin builds the Quarkus applications, and provides helpers to launch dev mode or build native executables. For more information about how to use the Quarkus Maven Plugin, please refer to the Maven Tooling guide.

## Discover Maven goals

Like most Maven plugins, the Quarkus Maven Plugin has a `help` goal that prints the description of the plugin, listing all available goals as well as their description. It is also possible to print out detailed information about a goal, all its parameters and their default values. For instance, to see the help for the `create` goal, run:

    ./mvnw quarkus:help -Ddetail -Dgoal=create

## Maven goals reference

Here is the list of all the Quarkus Maven Plugin goals:

### quarkus:add-extension

Allow adding an extension to an existing pom.xml file. Because you can add one or several extension in one go, there are 2 mojos: add-extensions and add-extension. Both supports the extension and extensions parameters.

Parameter | Type | Default
--- | --- | ---
`bomArtifactId` | String |
`bomGroupId` | String |
`bomVersion` | String |
`extension` For usability reason, this parameter allows adding a single extension. | String |
`extensions` The list of extensions to be added. | Set |
`project` | MavenProject | `${project}`
`repoSession` | RepositorySystemSession | `${repositorySystemSession}`
`repos` | List | `${project.remoteProjectRepositories}`
`session` | MavenSession | `${session}`

### quarkus:add-extensions

Allow adding extensions to an existing pom.xml file. Because you can add one or several extension in one go, there are 2 mojos: add-extensions and add-extension. Both supports the extension and extensions parameters.

Parameter | Type | Default
--- | --- | ---
`bomArtifactId` | String |
`bomGroupId` | String |
`bomVersion` | String |
`extension` For usability reason, this parameter allows adding a single extension. | String |
`extensions` The list of extensions to be added. | Set |
`project` | MavenProject | `${project}`
`repoSession` | RepositorySystemSession | `${repositorySystemSession}`
`repos` | List | `${project.remoteProjectRepositories}`
`session` | MavenSession | `${session}`

### quarkus:analyze-call-tree

Analyze call tree of a method or a class based on an existing report produced by Substrate when using -H:+PrintAnalysisCallTree, and does a more meaningful analysis of what is causing a type to be retained.

Parameter | Type | Default
--- | --- | ---
`className` | String | `${class}`
`methodName` | String | `${method}`
`reportsDir` | File | `${project.build.directory}/reports`

### quarkus:build

Builds the Quarkus application.

Parameter | Type | Default
--- | --- | ---
`appArtifact` Coordinates of the Maven artifact containing the original Java application to build the native image for. If not provided, the current project is assumed to be the original Java application. The coordinates are expected to be expressed in the following format: groupId:artifactId:classifier:type:version With the classifier, type and version being optional. If the type is missing, the artifact is assumed to be of type JAR. If the version is missing, the artifact is going to be looked up among the project dependencies using the provided coordinates. However, if the expression consists of only three parts, it is assumed to be groupId:artifactId:version. If the expression consists of only four parts, it is assumed to be groupId:artifactId:classifier:type. | String |
`attachRunnerAsMainArtifact` Whether to replace the original JAR with the Uber runner JAR as the main project artifact | boolean | `false`
`bootstrapId` Application bootstrap provider ID. This parameter is not supposed to be configured by the user. To be able to re-use an application bootstrapped in one phase in a later phase, there needs to be a way to identify the correct instance of the bootstrapped application (in case there are more than one) in each Mojo. A bootstrap ID serves this purpose. This parameter is is set in DevMojo invoking generate-code and generate-code-tests goals. If this parameter is not configured, a Mojo execution ID will be used as the bootstrap ID. | String |
`buildDir` | File | `${project.build.directory}`
`buildDirectory` | File | `${project.build.directory}`
`closeBootstrappedApp` Whether to close the bootstrapped applications after the execution | boolean |
`finalName` | String | `${project.build.finalName}`
`generatedSourcesDirectory` The directory for generated source files. | File | `${project.build.directory}/generated-sources`
`ignoredEntries` When building an uber-jar, this array specifies entries that should be excluded from the final jar. The entries are relative to the root of the file. An example of this configuration could be: true META-INF/BC2048KE.SF META-INF/BC2048KE.DSA META-INF/BC1024KE.SF META-INF/BC1024KE.DSA | java.lang.String[] |
`manifestEntries` The list of main manifest attributes | Map |
`manifestSections` The list of manifest sections | List |
`mojoExecution` The context of the execution of the plugin. | MojoExecution | `${mojoExecution}`
`pluginRepos` The project’s remote repositories to use for the resolution of plugins and their dependencies. | List | `${project.remotePluginRepositories}`
`project` | MavenProject | `${project}`
`properties` The properties of the plugin. | Map |
`repoSession` The current repository/network configuration of Maven. | RepositorySystemSession | `${repositorySystemSession}`
`repos` The project’s remote repositories to use for the resolution of artifacts and their dependencies. | List | `${project.remoteProjectRepositories}`
`session` | MavenSession | `${session}`
`skip` Skips the execution of this mojo | boolean | `false`
`skipOriginalJarRename` When the building an Uber JAR, the default JAR is renamed by adding .original suffix. Enabling this property will disable the renaming of the original JAR. | boolean | `false`
`systemProperties` The list of system properties defined for the plugin. | Map |

### quarkus:create

This goal helps in setting up Quarkus Maven project with quarkus-maven-plugin, with sensible defaults

Parameter | Type | Default
--- | --- | ---
`appConfig` | String |
`bomArtifactId` Artifact ID of the target platform BOM | String |
`bomGroupId` Group ID of the target platform BOM | String |
`bomVersion` Version of the target platform BOM | String |
`buildTool` | String | `MAVEN`
`className` The className will define the generated class names when picking only one of those extensions resteasy, resteasy-reactive and spring-web. If more than one of those extensions are picked, then only the package name part will be used as packageName More info: https://github.com/quarkusio/quarkus/issues/14437 By default, the projectGroupId is used as package for generated classes (you can also use packageName to have them different). className | String |
`data` | String |
`example` | String |
`extensions` | Set |
`javaVersion` | String |
`noCode` When true, do not include any code in the generated Quarkus project. | boolean | `false`
`outputDirectory` | File | `${basedir}`
`packageName` Set the package name of the generated classes. If not set, projectGroupId will be used as packageName packageName | String |
`path` The path will define the REST path of the generated code when picking only one of those extensions resteasy, resteasy-reactive and spring-web. If more than one of those extensions are picked, this parameter will be ignored. More info: https://github.com/quarkusio/quarkus/issues/14437 className | String |
`project` | MavenProject | `${project}`
`projectArtifactId` | String |
`projectDescription` | String |
`projectGroupId` | String |
`projectName` | String |
`projectVersion` | String |
`repoSession` | RepositorySystemSession | `${repositorySystemSession}`
`repos` | List | `${project.remoteProjectRepositories}`
`session` | MavenSession | `${session}`

### quarkus:create-extension

Creates the base of a Quarkus Extension in different layout depending on the options and environment. Create in the quarkus-parent project directory (or the extensions parent dir) It will: * generate the new Quarkus extension in the extensions parent as a module (parent, runtime and deployment), with unit test and devmode test on option. * On option, generate the new integration test in the integration tests parent as a module. * add the dependencies to the bom/application/pom.xml. Creating a Quarkiverse extension When using -DgroupId=io.quarkiverse.[featureId], the new extension will use the Quarkiverse layout. Creating a standalone extension * generate the new Quarkus extension in the current directory (parent, runtime and deployment), with unit test and devmode test on option. * On option, generate the new integration test module in the current directory.

Parameter | Type | Default
--- | --- | ---
`artifactId` Used to detect legacy command usage and display an error | String |
`basedir` Directory where the changes should be performed. Default: the current directory of the current Java process. | File |
`extensionDescription` The extensionDescription of the runtime module. This description is used on https://code.quarkus.io/. | String |
`extensionId` extensionId of this extension (REQUIRED). It will be used to generate the different extension modules artifactIds ([namespaceId][extensionId]-parent), runtime ([namespaceId][extensionId]) and deployment ([namespaceId][extensionId]-deployment). | String |
`extensionName` The extensionName of the runtime module. The extensionNames of the extension parent and deployment modules will be based on this name too. Default: the formatted extensionId | String |
`groupId` The groupId for the newly created Maven modules (REQUIRED - INHERITED IN QUARKUS-CORE). | String |
`namespaceId` A prefix common to all extension artifactIds in the current source tree. Default: "quarkus-" in quarkus Quarkus Core and Quarkiverse else "" | String |
`namespaceName` A prefix common to all extension names in the current source tree. Default: "quarkus-" in Quarkus Core and Quarkiverse else "" | String |
`packageName` Base package under which classes should be created in Runtime and Deployment modules. Default: auto-generated out of groupId, namespaceId and extensionId | String |
`project` | MavenProject | `${project}`
`quarkusBomArtifactId` The artifactId of the Quarkus platform BOM. Default: io.quarkus.devtools.commands.CreateExtension.DEFAULT_BOM_ARTIFACT_ID | String |
`quarkusBomGroupId` The groupId of the Quarkus platform BOM. Default: io.quarkus.devtools.commands.CreateExtension.DEFAULT_BOM_GROUP_ID | String |
`quarkusBomVersion` The version of the Quarkus platform BOM. Default: io.quarkus.devtools.commands.CreateExtension.DEFAULT_BOM_VERSION | String |
`quarkusVersion` Quarkus version the newly created extension should depend on (REQUIRED - INHERITED IN QUARKUS-CORE). | String |
`repoSession` | RepositorySystemSession | `${repositorySystemSession}`
`repos` | List | `${project.remoteProjectRepositories}`
`session` | MavenSession | `${session}`
`version` The version for the newly created Maven modules. Default: automatic in Quarkus Core else io.quarkus.devtools.commands.CreateExtension.DEFAULT_VERSION | String |
`withCodestart` Indicates whether to generate an extension codestart | boolean | `false`
`withoutDevModeTest` Indicates whether to generate a devmode test for the extension | boolean | `false`
`withoutIntegrationTests` Indicates whether to generate an integration tests for the extension | boolean | `false`
`withoutTests` Indicates whether to generate any tests for the extension (same as -DwithoutUnitTest -DwithoutIntegrationTest -DwithoutDevModeTest) | boolean | `false`
`withoutUnitTest` Indicates whether to generate a unit test class for the extension | boolean | `false`

### quarkus:create-jbang

Parameter | Type | Default
--- | --- | ---
`bomArtifactId` Artifact ID of the target platform BOM | String |
`bomGroupId` Group ID of the target platform BOM | String |
`bomVersion` Version of the target platform BOM | String |
`extensions` | Set |
`javaVersion` | String |
`noJBangWrapper` | boolean | `false`
`outputDirectory` | File | `${basedir}/jbang-with-quarkus`
`repoSession` | RepositorySystemSession | `${repositorySystemSession}`
`repos` | List | `${project.remoteProjectRepositories}`

### quarkus:dependency-tree

Displays Quarkus application build dependency tree including the deployment ones.

Parameter | Type | Default
--- | --- | ---
`appendOutput` Whether to append outputs into the output file or overwrite it. | boolean | `false`
`mode` Target launch mode corresponding to io.quarkus.runtime.LaunchMode for which the dependency tree should be built. io.quarkus.runtime.LaunchMode.NORMAL is the default. | String | `prod`
`outputFile` If specified, this parameter will cause the dependency tree to be written to the path specified, instead of writing to the console. | File |
`project` | MavenProject | `${project}`
`repos` | List | `${project.remoteProjectRepositories}`
`session` | MavenSession | `${session}`

### quarkus:deploy

Parameter | Type | Default
--- | --- | ---
`appArtifact` Coordinates of the Maven artifact containing the original Java application to build the native image for. If not provided, the current project is assumed to be the original Java application. The coordinates are expected to be expressed in the following format: groupId:artifactId:classifier:type:version With the classifier, type and version being optional. If the type is missing, the artifact is assumed to be of type JAR. If the version is missing, the artifact is going to be looked up among the project dependencies using the provided coordinates. However, if the expression consists of only three parts, it is assumed to be groupId:artifactId:version. If the expression consists of only four parts, it is assumed to be groupId:artifactId:classifier:type. | String |
`attachRunnerAsMainArtifact` Whether to replace the original JAR with the Uber runner JAR as the main project artifact | boolean | `false`
`bootstrapId` Application bootstrap provider ID. This parameter is not supposed to be configured by the user. To be able to re-use an application bootstrapped in one phase in a later phase, there needs to be a way to identify the correct instance of the bootstrapped application (in case there are more than one) in each Mojo. A bootstrap ID serves this purpose. This parameter is is set in DevMojo invoking generate-code and generate-code-tests goals. If this parameter is not configured, a Mojo execution ID will be used as the bootstrap ID. | String |
`buildDir` | File | `${project.build.directory}`
`buildDirectory` | File | `${project.build.directory}`
`closeBootstrappedApp` Whether to close the bootstrapped applications after the execution | boolean |
`dryRun` | boolean | `false`
`finalName` | String | `${project.build.finalName}`
`generatedSourcesDirectory` The directory for generated source files. | File | `${project.build.directory}/generated-sources`
`ignoredEntries` When building an uber-jar, this array specifies entries that should be excluded from the final jar. The entries are relative to the root of the file. An example of this configuration could be: true META-INF/BC2048KE.SF META-INF/BC2048KE.DSA META-INF/BC1024KE.SF META-INF/BC1024KE.DSA | java.lang.String[] |
`imageBuild` | boolean | `false`
`imageBuilder` | String |
`manifestEntries` The list of main manifest attributes | Map |
`manifestSections` The list of manifest sections | List |
`mojoExecution` The context of the execution of the plugin. | MojoExecution | `${mojoExecution}`
`pluginRepos` The project’s remote repositories to use for the resolution of plugins and their dependencies. | List | `${project.remotePluginRepositories}`
`project` | MavenProject | `${project}`
`properties` The properties of the plugin. | Map |
`repoSession` The current repository/network configuration of Maven. | RepositorySystemSession | `${repositorySystemSession}`
`repos` The project’s remote repositories to use for the resolution of artifacts and their dependencies. | List | `${project.remoteProjectRepositories}`
`session` | MavenSession | `${session}`
`skip` Skips the execution of this mojo | boolean | `false`
`skipOriginalJarRename` When the building an Uber JAR, the default JAR is renamed by adding .original suffix. Enabling this property will disable the renaming of the original JAR. | boolean | `false`
`systemProperties` The list of system properties defined for the plugin. | Map |

### quarkus:dev

The dev mojo, that runs a quarkus app in a forked process. A background compilation process is launched and any changes are automatically reflected in your running application. You can use this dev mode in a remote container environment with remote-dev.

Parameter | Type | Default
--- | --- | ---
`argsString` | String | `${quarkus.args}`
`buildDir` | File | `${project.build.directory}`
`compilerArgs` Additional parameters to pass to javac when recompiling changed source files. | List |
`compilerOptions` Additional compiler arguments | List |
`debug` If this server should be started in debug mode. The default is to start in debug mode and listen on port 5005. Whether the JVM is suspended waiting for a debugger to be attached, depends on the value of suspend. debug supports the following options: Value Effect false The JVM is not started in debug mode true The JVM is started in debug mode and will be listening on debugHost:debugPort client The JVM is started in client mode, and will attempt to connect to debugHost:debugPort {port} The JVM is started in debug mode and will be listening on debugHost:{port}. By default, debugHost has the value "localhost", and debugPort is 5005. | String | `${debug}`
`debugHost` | String | `${debugHost}`
`debugPort` | String | `${debugPort}`
`deleteDevJar` | boolean | `TRUE`
`enforceBuildGoal` Whether to enforce the quarkus-maven-plugin build goal to be configured. By default, a missing build goal is considered an inconsistency (although the build goal is not required technically). In this case a warning will be logged and the application will not be started. | boolean | `${quarkus.enforceBuildGoal}`
`environmentVariables` | Map |
`jvmArgs` | String | `${jvm.args}`
`modules` Allows configuring the modules to add to the application. The listed modules will be added using: --add-modules m1,m2…​. | List | `${add-modules}`
`mojoExecution` | MojoExecution | `${mojoExecution}`
`noDeps` Whether changes in the projects that appear to be dependencies of the project containing the application to be launched should trigger hot-reload. By default, they do. | boolean | `${noDeps}`
`openJavaLang` | boolean | `${open-lang-package}`
`outputDirectory` The directory for compiled classes. | File | `${project.build.outputDirectory}`
`pluginRepos` | List | `${project.remotePluginRepositories}`
`preventnoverify` This value is intended to be set to true when some generated bytecode is erroneous causing the JVM to crash when the verify:none option is set (which is on by default) | boolean | `${preventnoverify}`
`project` | MavenProject | `${project}`
`release` The --release argument to javac. | String | `${maven.compiler.release}`
`repoSession` | RepositorySystemSession | `${repositorySystemSession}`
`repos` | List | `${project.remoteProjectRepositories}`
`session` | MavenSession | `${session}`
`source` The -source argument to javac. | String | `${maven.compiler.source}`
`sourceDir` | File | `${project.build.sourceDirectory}`
`suspend` Whether the JVM launch, in debug mode, should be suspended. This parameter is only relevant when the JVM is launched in debug mode. This parameter supports the following values (all the allowed values are case-insensitive): Value Effect y or true The debug mode JVM launch is suspended n or false The debug mode JVM is started without suspending | String | `${suspend}`
`systemProperties` | Map |
`target` The -target argument to javac. | String | `${maven.compiler.target}`
`warnIfBuildGoalMissing` | boolean | `false`
`workingDir` | File |

### quarkus:generate-code

Parameter | Type | Default
--- | --- | ---
`appArtifact` Coordinates of the Maven artifact containing the original Java application to build the native image for. If not provided, the current project is assumed to be the original Java application. The coordinates are expected to be expressed in the following format: groupId:artifactId:classifier:type:version With the classifier, type and version being optional. If the type is missing, the artifact is assumed to be of type JAR. If the version is missing, the artifact is going to be looked up among the project dependencies using the provided coordinates. However, if the expression consists of only three parts, it is assumed to be groupId:artifactId:version. If the expression consists of only four parts, it is assumed to be groupId:artifactId:classifier:type. | String |
`bootstrapId` Application bootstrap provider ID. This parameter is not supposed to be configured by the user. To be able to re-use an application bootstrapped in one phase in a later phase, there needs to be a way to identify the correct instance of the bootstrapped application (in case there are more than one) in each Mojo. A bootstrap ID serves this purpose. This parameter is is set in DevMojo invoking generate-code and generate-code-tests goals. If this parameter is not configured, a Mojo execution ID will be used as the bootstrap ID. | String |
`buildDir` | File | `${project.build.directory}`
`closeBootstrappedApp` Whether to close the bootstrapped applications after the execution | boolean |
`finalName` | String | `${project.build.finalName}`
`ignoredEntries` When building an uber-jar, this array specifies entries that should be excluded from the final jar. The entries are relative to the root of the file. An example of this configuration could be: true META-INF/BC2048KE.SF META-INF/BC2048KE.DSA META-INF/BC1024KE.SF META-INF/BC1024KE.DSA | java.lang.String[] |
`manifestEntries` The list of main manifest attributes | Map |
`manifestSections` The list of manifest sections | List |
`mode` | String | `NORMAL`
`mojoExecution` The context of the execution of the plugin. | MojoExecution | `${mojoExecution}`
`project` | MavenProject | `${project}`
`properties` The properties of the plugin. | Map |
`repoSession` The current repository/network configuration of Maven. | RepositorySystemSession | `${repositorySystemSession}`
`repos` The project’s remote repositories to use for the resolution of artifacts and their dependencies. | List | `${project.remoteProjectRepositories}`
`session` | MavenSession | `${session}`
`skipSourceGeneration` Skip the execution of this mojo | boolean | `false`

### quarkus:generate-code-tests

Parameter | Type | Default
--- | --- | ---
`appArtifact` Coordinates of the Maven artifact containing the original Java application to build the native image for. If not provided, the current project is assumed to be the original Java application. The coordinates are expected to be expressed in the following format: groupId:artifactId:classifier:type:version With the classifier, type and version being optional. If the type is missing, the artifact is assumed to be of type JAR. If the version is missing, the artifact is going to be looked up among the project dependencies using the provided coordinates. However, if the expression consists of only three parts, it is assumed to be groupId:artifactId:version. If the expression consists of only four parts, it is assumed to be groupId:artifactId:classifier:type. | String |
`bootstrapId` Application bootstrap provider ID. This parameter is not supposed to be configured by the user. To be able to re-use an application bootstrapped in one phase in a later phase, there needs to be a way to identify the correct instance of the bootstrapped application (in case there are more than one) in each Mojo. A bootstrap ID serves this purpose. This parameter is is set in DevMojo invoking generate-code and generate-code-tests goals. If this parameter is not configured, a Mojo execution ID will be used as the bootstrap ID. | String |
`buildDir` | File | `${project.build.directory}`
`closeBootstrappedApp` Whether to close the bootstrapped applications after the execution | boolean |
`finalName` | String | `${project.build.finalName}`
`ignoredEntries` When building an uber-jar, this array specifies entries that should be excluded from the final jar. The entries are relative to the root of the file. An example of this configuration could be: true META-INF/BC2048KE.SF META-INF/BC2048KE.DSA META-INF/BC1024KE.SF META-INF/BC1024KE.DSA | java.lang.String[] |
`manifestEntries` The list of main manifest attributes | Map |
`manifestSections` The list of manifest sections | List |
`mode` | String | `NORMAL`
`mojoExecution` The context of the execution of the plugin. | MojoExecution | `${mojoExecution}`
`project` | MavenProject | `${project}`
`properties` The properties of the plugin. | Map |
`repoSession` The current repository/network configuration of Maven. | RepositorySystemSession | `${repositorySystemSession}`
`repos` The project’s remote repositories to use for the resolution of artifacts and their dependencies. | List | `${project.remoteProjectRepositories}`
`session` | MavenSession | `${session}`
`skipSourceGeneration` Skip the execution of this mojo | boolean | `false`

### quarkus:go-offline

This goal downloads all the Maven artifact dependencies required to build, run, test and launch the application dev mode.

Parameter | Type | Default
--- | --- | ---
`mode` Target launch mode corresponding to io.quarkus.runtime.LaunchMode for which the dependencies should be resolved. io.quarkus.runtime.LaunchMode.TEST is the default, since it includes both provided and test dependency scopes. | String | `test`
`project` | MavenProject | `${project}`
`repoSession` | RepositorySystemSession | `${repositorySystemSession}`
`repos` | List | `${project.remoteProjectRepositories}`
`session` | MavenSession | `${session}`

### quarkus:help

Display help information on quarkus-maven-plugin. Call mvn quarkus:help -Ddetail=true -Dgoal= to display parameter details.

Parameter | Type | Default
--- | --- | ---
`detail` If true, display all settable properties for each goal. | boolean | `false`
`goal` The name of the goal for which to show help. If unspecified, all goals will be displayed. | String |
`indentSize` The number of spaces per indentation level, should be positive. | int | `2`
`lineLength` The maximum length of a display line, should be positive. | int | `80`

### quarkus:image-build

Builds a container image.

Parameter | Type | Default
--- | --- | ---
`appArtifact` Coordinates of the Maven artifact containing the original Java application to build the native image for. If not provided, the current project is assumed to be the original Java application. The coordinates are expected to be expressed in the following format: groupId:artifactId:classifier:type:version With the classifier, type and version being optional. If the type is missing, the artifact is assumed to be of type JAR. If the version is missing, the artifact is going to be looked up among the project dependencies using the provided coordinates. However, if the expression consists of only three parts, it is assumed to be groupId:artifactId:version. If the expression consists of only four parts, it is assumed to be groupId:artifactId:classifier:type. | String |
`attachRunnerAsMainArtifact` Whether to replace the original JAR with the Uber runner JAR as the main project artifact | boolean | `false`
`bootstrapId` Application bootstrap provider ID. This parameter is not supposed to be configured by the user. To be able to re-use an application bootstrapped in one phase in a later phase, there needs to be a way to identify the correct instance of the bootstrapped application (in case there are more than one) in each Mojo. A bootstrap ID serves this purpose. This parameter is is set in DevMojo invoking generate-code and generate-code-tests goals. If this parameter is not configured, a Mojo execution ID will be used as the bootstrap ID. | String |
`buildDir` | File | `${project.build.directory}`
`buildDirectory` | File | `${project.build.directory}`
`builderName` | String |
`closeBootstrappedApp` Whether to close the bootstrapped applications after the execution | boolean |
`dryRun` | boolean | `false`
`finalName` | String | `${project.build.finalName}`
`generatedSourcesDirectory` The directory for generated source files. | File | `${project.build.directory}/generated-sources`
`ignoredEntries` When building an uber-jar, this array specifies entries that should be excluded from the final jar. The entries are relative to the root of the file. An example of this configuration could be: true META-INF/BC2048KE.SF META-INF/BC2048KE.DSA META-INF/BC1024KE.SF META-INF/BC1024KE.DSA | java.lang.String[] |
`manifestEntries` The list of main manifest attributes | Map |
`manifestSections` The list of manifest sections | List |
`mojoExecution` The context of the execution of the plugin. | MojoExecution | `${mojoExecution}`
`pluginRepos` The project’s remote repositories to use for the resolution of plugins and their dependencies. | List | `${project.remotePluginRepositories}`
`project` | MavenProject | `${project}`
`properties` The properties of the plugin. | Map |
`repoSession` The current repository/network configuration of Maven. | RepositorySystemSession | `${repositorySystemSession}`
`repos` The project’s remote repositories to use for the resolution of artifacts and their dependencies. | List | `${project.remoteProjectRepositories}`
`session` | MavenSession | `${session}`
`skip` Skips the execution of this mojo | boolean | `false`
`skipOriginalJarRename` When the building an Uber JAR, the default JAR is renamed by adding .original suffix. Enabling this property will disable the renaming of the original JAR. | boolean | `false`
`systemProperties` The list of system properties defined for the plugin. | Map |

### quarkus:image-push

Pushes a container image.

Parameter | Type | Default
--- | --- | ---
`appArtifact` Coordinates of the Maven artifact containing the original Java application to build the native image for. If not provided, the current project is assumed to be the original Java application. The coordinates are expected to be expressed in the following format: groupId:artifactId:classifier:type:version With the classifier, type and version being optional. If the type is missing, the artifact is assumed to be of type JAR. If the version is missing, the artifact is going to be looked up among the project dependencies using the provided coordinates. However, if the expression consists of only three parts, it is assumed to be groupId:artifactId:version. If the expression consists of only four parts, it is assumed to be groupId:artifactId:classifier:type. | String |
`attachRunnerAsMainArtifact` Whether to replace the original JAR with the Uber runner JAR as the main project artifact | boolean | `false`
`bootstrapId` Application bootstrap provider ID. This parameter is not supposed to be configured by the user. To be able to re-use an application bootstrapped in one phase in a later phase, there needs to be a way to identify the correct instance of the bootstrapped application (in case there are more than one) in each Mojo. A bootstrap ID serves this purpose. This parameter is is set in DevMojo invoking generate-code and generate-code-tests goals. If this parameter is not configured, a Mojo execution ID will be used as the bootstrap ID. | String |
`buildDir` | File | `${project.build.directory}`
`buildDirectory` | File | `${project.build.directory}`
`builderName` | String |
`closeBootstrappedApp` Whether to close the bootstrapped applications after the execution | boolean |
`dryRun` | boolean | `false`
`finalName` | String | `${project.build.finalName}`
`generatedSourcesDirectory` The directory for generated source files. | File | `${project.build.directory}/generated-sources`
`ignoredEntries` When building an uber-jar, this array specifies entries that should be excluded from the final jar. The entries are relative to the root of the file. An example of this configuration could be: true META-INF/BC2048KE.SF META-INF/BC2048KE.DSA META-INF/BC1024KE.SF META-INF/BC1024KE.DSA | java.lang.String[] |
`manifestEntries` The list of main manifest attributes | Map |
`manifestSections` The list of manifest sections | List |
`mojoExecution` The context of the execution of the plugin. | MojoExecution | `${mojoExecution}`
`pluginRepos` The project’s remote repositories to use for the resolution of plugins and their dependencies. | List | `${project.remotePluginRepositories}`
`project` | MavenProject | `${project}`
`properties` The properties of the plugin. | Map |
`repoSession` The current repository/network configuration of Maven. | RepositorySystemSession | `${repositorySystemSession}`
`repos` The project’s remote repositories to use for the resolution of artifacts and their dependencies. | List | `${project.remoteProjectRepositories}`
`session` | MavenSession | `${session}`
`skip` Skips the execution of this mojo | boolean | `false`
`skipOriginalJarRename` When the building an Uber JAR, the default JAR is renamed by adding .original suffix. Enabling this property will disable the renaming of the original JAR. | boolean | `false`
`systemProperties` The list of system properties defined for the plugin. | Map |

### quarkus:info

Log Quarkus-specific project information, such as imported Quarkus platform BOMs, Quarkus extensions found among the project dependencies, etc.

Parameter | Type | Default
--- | --- | ---
`bomArtifactId` | String |
`bomGroupId` | String |
`bomVersion` | String |
`perModule` If true, the information will be logged per each relevant module of the project instead of an overall summary | boolean | `false`
`project` | MavenProject | `${project}`
`repoSession` | RepositorySystemSession | `${repositorySystemSession}`
`repos` | List | `${project.remoteProjectRepositories}`
`session` | MavenSession | `${session}`

### quarkus:list-categories

List extension categories, which a user can use to filter extensions.

Parameter | Type | Default
--- | --- | ---
`bomArtifactId` | String |
`bomGroupId` | String |
`bomVersion` | String |
`format` Select the output format among 'name' (display the name only) and 'full' (includes a verbose name and a description). | String | `concise`
`project` | MavenProject | `${project}`
`repoSession` | RepositorySystemSession | `${repositorySystemSession}`
`repos` | List | `${project.remoteProjectRepositories}`
`session` | MavenSession | `${session}`

### quarkus:list-extensions

List the available extensions. You can add one or several extensions in one go, with the 2 following mojos: add-extensions and add-extension. You can list all extension or just installable. Choose between 3 output formats: name, concise and full.

Parameter | Type | Default
--- | --- | ---
`all` List all extensions or just the installable. | boolean | `true`
`bomArtifactId` | String |
`bomGroupId` | String |
`bomVersion` | String |
`category` Only list extensions from given category. | String |
`format` Select the output format among 'id' (display the artifactId only), 'concise' (display name and artifactId) and 'full' (concise format and version related columns). | String | `concise`
`installed` List the already installed extensions | boolean | `false`
`project` | MavenProject | `${project}`
`repoSession` | RepositorySystemSession | `${repositorySystemSession}`
`repos` | List | `${project.remoteProjectRepositories}`
`searchPattern` Search filter on extension list. The format is based on Java Pattern. | String |
`session` | MavenSession | `${session}`

### quarkus:list-platforms

List imported and optionally other platforms available for the project.

Parameter | Type | Default
--- | --- | ---
`bomArtifactId` | String |
`bomGroupId` | String |
`bomVersion` | String |
`installed` List the already installed extensions | boolean | `false`
`project` | MavenProject | `${project}`
`repoSession` | RepositorySystemSession | `${repositorySystemSession}`
`repos` | List | `${project.remoteProjectRepositories}`
`session` | MavenSession | `${session}`

### quarkus:prepare

Parameter | Type | Default
--- | --- | ---
`appArtifact` Coordinates of the Maven artifact containing the original Java application to build the native image for. If not provided, the current project is assumed to be the original Java application. The coordinates are expected to be expressed in the following format: groupId:artifactId:classifier:type:version With the classifier, type and version being optional. If the type is missing, the artifact is assumed to be of type JAR. If the version is missing, the artifact is going to be looked up among the project dependencies using the provided coordinates. However, if the expression consists of only three parts, it is assumed to be groupId:artifactId:version. If the expression consists of only four parts, it is assumed to be groupId:artifactId:classifier:type. | String |
`bootstrapId` Application bootstrap provider ID. This parameter is not supposed to be configured by the user. To be able to re-use an application bootstrapped in one phase in a later phase, there needs to be a way to identify the correct instance of the bootstrapped application (in case there are more than one) in each Mojo. A bootstrap ID serves this purpose. This parameter is is set in DevMojo invoking generate-code and generate-code-tests goals. If this parameter is not configured, a Mojo execution ID will be used as the bootstrap ID. | String |
`buildDir` | File | `${project.build.directory}`
`closeBootstrappedApp` Whether to close the bootstrapped applications after the execution | boolean |
`finalName` | String | `${project.build.finalName}`
`ignoredEntries` When building an uber-jar, this array specifies entries that should be excluded from the final jar. The entries are relative to the root of the file. An example of this configuration could be: true META-INF/BC2048KE.SF META-INF/BC2048KE.DSA META-INF/BC1024KE.SF META-INF/BC1024KE.DSA | java.lang.String[] |
`manifestEntries` The list of main manifest attributes | Map |
`manifestSections` The list of manifest sections | List |
`mode` | String | `NORMAL`
`mojoExecution` The context of the execution of the plugin. | MojoExecution | `${mojoExecution}`
`project` | MavenProject | `${project}`
`properties` The properties of the plugin. | Map |
`repoSession` The current repository/network configuration of Maven. | RepositorySystemSession | `${repositorySystemSession}`
`repos` The project’s remote repositories to use for the resolution of artifacts and their dependencies. | List | `${project.remoteProjectRepositories}`
`session` | MavenSession | `${session}`
`skipSourceGeneration` Skip the execution of this mojo | boolean | `false`

### quarkus:prepare-tests

Parameter | Type | Default
--- | --- | ---
`appArtifact` Coordinates of the Maven artifact containing the original Java application to build the native image for. If not provided, the current project is assumed to be the original Java application. The coordinates are expected to be expressed in the following format: groupId:artifactId:classifier:type:version With the classifier, type and version being optional. If the type is missing, the artifact is assumed to be of type JAR. If the version is missing, the artifact is going to be looked up among the project dependencies using the provided coordinates. However, if the expression consists of only three parts, it is assumed to be groupId:artifactId:version. If the expression consists of only four parts, it is assumed to be groupId:artifactId:classifier:type. | String |
`bootstrapId` Application bootstrap provider ID. This parameter is not supposed to be configured by the user. To be able to re-use an application bootstrapped in one phase in a later phase, there needs to be a way to identify the correct instance of the bootstrapped application (in case there are more than one) in each Mojo. A bootstrap ID serves this purpose. This parameter is is set in DevMojo invoking generate-code and generate-code-tests goals. If this parameter is not configured, a Mojo execution ID will be used as the bootstrap ID. | String |
`buildDir` | File | `${project.build.directory}`
`closeBootstrappedApp` Whether to close the bootstrapped applications after the execution | boolean |
`finalName` | String | `${project.build.finalName}`
`ignoredEntries` When building an uber-jar, this array specifies entries that should be excluded from the final jar. The entries are relative to the root of the file. An example of this configuration could be: true META-INF/BC2048KE.SF META-INF/BC2048KE.DSA META-INF/BC1024KE.SF META-INF/BC1024KE.DSA | java.lang.String[] |
`manifestEntries` The list of main manifest attributes | Map |
`manifestSections` The list of manifest sections | List |
`mode` | String | `NORMAL`
`mojoExecution` The context of the execution of the plugin. | MojoExecution | `${mojoExecution}`
`project` | MavenProject | `${project}`
`properties` The properties of the plugin. | Map |
`repoSession` The current repository/network configuration of Maven. | RepositorySystemSession | `${repositorySystemSession}`
`repos` The project’s remote repositories to use for the resolution of artifacts and their dependencies. | List | `${project.remoteProjectRepositories}`
`session` | MavenSession | `${session}`
`skipSourceGeneration` Skip the execution of this mojo | boolean | `false`

### quarkus:remote-dev

The dev mojo, that connects to a remote host.

Parameter | Type | Default
--- | --- | ---
`argsString` | String | `${quarkus.args}`
`buildDir` | File | `${project.build.directory}`
`compilerArgs` Additional parameters to pass to javac when recompiling changed source files. | List |
`compilerOptions` Additional compiler arguments | List |
`debug` If this server should be started in debug mode. The default is to start in debug mode and listen on port 5005. Whether the JVM is suspended waiting for a debugger to be attached, depends on the value of suspend. debug supports the following options: Value Effect false The JVM is not started in debug mode true The JVM is started in debug mode and will be listening on debugHost:debugPort client The JVM is started in client mode, and will attempt to connect to debugHost:debugPort {port} The JVM is started in debug mode and will be listening on debugHost:{port}. By default, debugHost has the value "localhost", and debugPort is 5005. | String | `${debug}`
`debugHost` | String | `${debugHost}`
`debugPort` | String | `${debugPort}`
`deleteDevJar` | boolean | `TRUE`
`enforceBuildGoal` Whether to enforce the quarkus-maven-plugin build goal to be configured. By default, a missing build goal is considered an inconsistency (although the build goal is not required technically). In this case a warning will be logged and the application will not be started. | boolean | `${quarkus.enforceBuildGoal}`
`environmentVariables` | Map |
`jvmArgs` | String | `${jvm.args}`
`modules` Allows configuring the modules to add to the application. The listed modules will be added using: --add-modules m1,m2…​. | List | `${add-modules}`
`mojoExecution` | MojoExecution | `${mojoExecution}`
`noDeps` Whether changes in the projects that appear to be dependencies of the project containing the application to be launched should trigger hot-reload. By default, they do. | boolean | `${noDeps}`
`openJavaLang` | boolean | `${open-lang-package}`
`outputDirectory` The directory for compiled classes. | File | `${project.build.outputDirectory}`
`pluginRepos` | List | `${project.remotePluginRepositories}`
`preventnoverify` This value is intended to be set to true when some generated bytecode is erroneous causing the JVM to crash when the verify:none option is set (which is on by default) | boolean | `${preventnoverify}`
`project` | MavenProject | `${project}`
`release` The --release argument to javac. | String | `${maven.compiler.release}`
`repoSession` | RepositorySystemSession | `${repositorySystemSession}`
`repos` | List | `${project.remoteProjectRepositories}`
`session` | MavenSession | `${session}`
`source` The -source argument to javac. | String | `${maven.compiler.source}`
`sourceDir` | File | `${project.build.sourceDirectory}`
`suspend` Whether the JVM launch, in debug mode, should be suspended. This parameter is only relevant when the JVM is launched in debug mode. This parameter supports the following values (all the allowed values are case-insensitive): Value Effect y or true The debug mode JVM launch is suspended n or false The debug mode JVM is started without suspending | String | `${suspend}`
`systemProperties` | Map |
`target` The -target argument to javac. | String | `${maven.compiler.target}`
`warnIfBuildGoalMissing` | boolean | `false`
`workingDir` | File |

### quarkus:remove-extension

Allow removing an extension from an existing pom.xml file. Because you can remove one or several extension in one go, there are 2 mojos: remove-extensions and remove-extension. Both supports the extension and extensions parameters.

Parameter | Type | Default
--- | --- | ---
`bomArtifactId` | String |
`bomGroupId` | String |
`bomVersion` | String |
`extension` For usability reason, this parameter allows removing a single extension. | String |
`extensions` The list of extensions to be removed. | Set |
`project` | MavenProject | `${project}`
`repoSession` | RepositorySystemSession | `${repositorySystemSession}`
`repos` | List | `${project.remoteProjectRepositories}`
`session` | MavenSession | `${session}`

### quarkus:remove-extensions

Allow removing extensions to an existing pom.xml file. Because you can remove one or several extension in one go, there are 2 mojos: remove-extensions and remove-extension. Both supports the extension and extensions parameters.

Parameter | Type | Default
--- | --- | ---
`bomArtifactId` | String |
`bomGroupId` | String |
`bomVersion` | String |
`extension` For usability reason, this parameter allows removing a single extension. | String |
`extensions` The list of extensions to be removed. | Set |
`project` | MavenProject | `${project}`
`repoSession` | RepositorySystemSession | `${repositorySystemSession}`
`repos` | List | `${project.remoteProjectRepositories}`
`session` | MavenSession | `${session}`

### quarkus:run

Parameter | Type | Default
--- | --- | ---
`appArtifact` Coordinates of the Maven artifact containing the original Java application to build the native image for. If not provided, the current project is assumed to be the original Java application. The coordinates are expected to be expressed in the following format: groupId:artifactId:classifier:type:version With the classifier, type and version being optional. If the type is missing, the artifact is assumed to be of type JAR. If the version is missing, the artifact is going to be looked up among the project dependencies using the provided coordinates. However, if the expression consists of only three parts, it is assumed to be groupId:artifactId:version. If the expression consists of only four parts, it is assumed to be groupId:artifactId:classifier:type. | String |
`bootstrapId` Application bootstrap provider ID. This parameter is not supposed to be configured by the user. To be able to re-use an application bootstrapped in one phase in a later phase, there needs to be a way to identify the correct instance of the bootstrapped application (in case there are more than one) in each Mojo. A bootstrap ID serves this purpose. This parameter is is set in DevMojo invoking generate-code and generate-code-tests goals. If this parameter is not configured, a Mojo execution ID will be used as the bootstrap ID. | String |
`buildDir` | File | `${project.build.directory}`
`closeBootstrappedApp` Whether to close the bootstrapped applications after the execution | boolean |
`finalName` | String | `${project.build.finalName}`
`ignoredEntries` When building an uber-jar, this array specifies entries that should be excluded from the final jar. The entries are relative to the root of the file. An example of this configuration could be: true META-INF/BC2048KE.SF META-INF/BC2048KE.DSA META-INF/BC1024KE.SF META-INF/BC1024KE.DSA | java.lang.String[] |
`manifestEntries` The list of main manifest attributes | Map |
`manifestSections` The list of manifest sections | List |
`mojoExecution` The context of the execution of the plugin. | MojoExecution | `${mojoExecution}`
`project` | MavenProject | `${project}`
`properties` The properties of the plugin. | Map |
`repoSession` The current repository/network configuration of Maven. | RepositorySystemSession | `${repositorySystemSession}`
`repos` The project’s remote repositories to use for the resolution of artifacts and their dependencies. | List | `${project.remoteProjectRepositories}`
`session` | MavenSession | `${session}`
`systemProperties` The list of system properties defined for the plugin. | Map |

### quarkus:test

The test mojo, that starts continuous testing outside of dev mode

Parameter | Type | Default
--- | --- | ---
`argsString` | String | `${quarkus.args}`
`buildDir` | File | `${project.build.directory}`
`compilerArgs` Additional parameters to pass to javac when recompiling changed source files. | List |
`compilerOptions` Additional compiler arguments | List |
`debug` If this server should be started in debug mode. The default is to start in debug mode and listen on port 5005. Whether the JVM is suspended waiting for a debugger to be attached, depends on the value of suspend. debug supports the following options: Value Effect false The JVM is not started in debug mode true The JVM is started in debug mode and will be listening on debugHost:debugPort client The JVM is started in client mode, and will attempt to connect to debugHost:debugPort {port} The JVM is started in debug mode and will be listening on debugHost:{port}. By default, debugHost has the value "localhost", and debugPort is 5005. | String | `${debug}`
`debugHost` | String | `${debugHost}`
`debugPort` | String | `${debugPort}`
`deleteDevJar` | boolean | `TRUE`
`enforceBuildGoal` Whether to enforce the quarkus-maven-plugin build goal to be configured. By default, a missing build goal is considered an inconsistency (although the build goal is not required technically). In this case a warning will be logged and the application will not be started. | boolean | `${quarkus.enforceBuildGoal}`
`environmentVariables` | Map |
`jvmArgs` | String | `${jvm.args}`
`modules` Allows configuring the modules to add to the application. The listed modules will be added using: --add-modules m1,m2…​. | List | `${add-modules}`
`mojoExecution` | MojoExecution | `${mojoExecution}`
`noDeps` Whether changes in the projects that appear to be dependencies of the project containing the application to be launched should trigger hot-reload. By default, they do. | boolean | `${noDeps}`
`openJavaLang` | boolean | `${open-lang-package}`
`outputDirectory` The directory for compiled classes. | File | `${project.build.outputDirectory}`
`pluginRepos` | List | `${project.remotePluginRepositories}`
`preventnoverify` This value is intended to be set to true when some generated bytecode is erroneous causing the JVM to crash when the verify:none option is set (which is on by default) | boolean | `${preventnoverify}`
`project` | MavenProject | `${project}`
`release` The --release argument to javac. | String | `${maven.compiler.release}`
`repoSession` | RepositorySystemSession | `${repositorySystemSession}`
`repos` | List | `${project.remoteProjectRepositories}`
`session` | MavenSession | `${session}`
`source` The -source argument to javac. | String | `${maven.compiler.source}`
`sourceDir` | File | `${project.build.sourceDirectory}`
`suspend` Whether the JVM launch, in debug mode, should be suspended. This parameter is only relevant when the JVM is launched in debug mode. This parameter supports the following values (all the allowed values are case-insensitive): Value Effect y or true The debug mode JVM launch is suspended n or false The debug mode JVM is started without suspending | String | `${suspend}`
`systemProperties` | Map |
`target` The -target argument to javac. | String | `${maven.compiler.target}`
`warnIfBuildGoalMissing` | boolean | `false`
`workingDir` | File |

### quarkus:track-config-changes

Maven goal that is executed before the BuildMojo. The goal looks for a file that contains build time configuration options read during the previous build. If that file exists, the goal will check whether the configuration options used during the previous build have changed in the current configuration and will persist their current values to another file, so that both configuration files could be compared by tools caching build goal outcomes to check whether the previous outcome of the BuildMojo needs to be rebuilt.

Parameter | Type | Default
--- | --- | ---
`appArtifact` Coordinates of the Maven artifact containing the original Java application to build the native image for. If not provided, the current project is assumed to be the original Java application. The coordinates are expected to be expressed in the following format: groupId:artifactId:classifier:type:version With the classifier, type and version being optional. If the type is missing, the artifact is assumed to be of type JAR. If the version is missing, the artifact is going to be looked up among the project dependencies using the provided coordinates. However, if the expression consists of only three parts, it is assumed to be groupId:artifactId:version. If the expression consists of only four parts, it is assumed to be groupId:artifactId:classifier:type. | String |
`bootstrapId` Application bootstrap provider ID. This parameter is not supposed to be configured by the user. To be able to re-use an application bootstrapped in one phase in a later phase, there needs to be a way to identify the correct instance of the bootstrapped application (in case there are more than one) in each Mojo. A bootstrap ID serves this purpose. This parameter is is set in DevMojo invoking generate-code and generate-code-tests goals. If this parameter is not configured, a Mojo execution ID will be used as the bootstrap ID. | String |
`buildDir` | File | `${project.build.directory}`
`closeBootstrappedApp` Whether to close the bootstrapped applications after the execution | boolean |
`finalName` | String | `${project.build.finalName}`
`ignoredEntries` When building an uber-jar, this array specifies entries that should be excluded from the final jar. The entries are relative to the root of the file. An example of this configuration could be: true META-INF/BC2048KE.SF META-INF/BC2048KE.DSA META-INF/BC1024KE.SF META-INF/BC1024KE.DSA | java.lang.String[] |
`manifestEntries` The list of main manifest attributes | Map |
`manifestSections` The list of manifest sections | List |
`mode` | String |
`mojoExecution` The context of the execution of the plugin. | MojoExecution | `${mojoExecution}`
`outputDirectory` | File | `${project.build.directory}`
`outputFile` | File |
`project` | MavenProject | `${project}`
`properties` The properties of the plugin. | Map |
`recordedBuildConfigDirectory` | File | `${basedir}/.quarkus`
`recordedBuildConfigFile` | File |
`repoSession` The current repository/network configuration of Maven. | RepositorySystemSession | `${repositorySystemSession}`
`repos` The project’s remote repositories to use for the resolution of artifacts and their dependencies. | List | `${project.remoteProjectRepositories}`
`session` | MavenSession | `${session}`
`skip` Skip the execution of this mojo | boolean | `false`

### quarkus:update

Log Quarkus-related recommended updates, such as new Quarkus platform BOM versions and Quarkus extensions versions that aren’t managed by the Quarkus platform BOMs.

Parameter | Type | Default
--- | --- | ---
`bomArtifactId` | String |
`bomGroupId` | String |
`bomVersion` | String |
`mavenSession` | MavenSession | `${session}`
`noRewrite` Disable the rewrite feature. | boolean | `false`
`perModule` Display information per project module. | boolean | `false`
`platformVersion` Version of the target platform (e.g: 2.0.0.Final) You may instead use streamId to target the latest version of a specific platform stream. | String |
`project` | MavenProject | `${project}`
`repoSession` | RepositorySystemSession | `${repositorySystemSession}`
`repos` | List | `${project.remoteProjectRepositories}`
`rewriteDryRun` Rewrite in dry-mode. | boolean | `false`
`rewritePluginVersion` The OpenRewrite plugin version | String |
`rewriteUpdateRecipesVersion` The io.quarkus:quarkus-update-recipes version. This artifact contains the base recipes used by this tool to update a project. | String |
`session` | MavenSession | `${session}`
`stream` Target stream (e.g: 2.0) | String |