## wildfly:package

Full name:

org.wildfly.plugins:wildfly-maven-plugin:5.0.1.Final:package

Description:

Provision a server, copy extra content and deploy primary artifact if it exists

Attributes:

- Requires a Maven project to be executed.
- Requires dependency resolution of artifacts in scope: `compile+runtime`.
- The goal is not marked as thread-safe and thus does not support parallel builds.
- Since version: `3.0`.
- Binds by default to the lifecycle phase: `package`.

### Optional Parameters

Name | Type | Since | Description
--- | --- | --- | ---
`<bootableJar>` | `boolean` | `5.0` | Package the provisioned server into a WildFly Bootable JAR. Note that the produced fat JAR is ignored when running the `dev`,`image`,`start` or `run` goals. User Property: `wildfly.bootable.jar` Alias: `bootable-jar`
`<bootableJarInstallArtifactClassifier>` | `String` | `5.0` | When `bootable-jar` is set to true, the bootable JAR artifact is attached to the project with the classifier 'bootable'. Use this parameter to configure the classifier. Default: `bootable` User Property: `wildfly.bootable.jar.classifier` Alias: `bootable-jar-install-artifact-classifier`
`<bootableJarName>` | `String` | `5.0` | When `bootable-jar` is set to true, use this parameter to name the generated jar file. The jar file is named by default `server-bootable.jar`. User Property: `wildfly.bootable.jar.name` Alias: `bootable-jar-name`
`<channels>` | `List<ChannelConfiguration>` | `-` | A list of channels used for resolving artifacts while provisioning. Defining a channel:
    <channels>
      <channel>
          <manifest>
              <groupId>org.wildfly.channels</groupId>
              <artifactId>wildfly-30.0</artifactId>
          </manifest>
      </channel>
      <channel>
          <manifest>
              <url>https://example.example.org/channel/30</url>
          </manifest>
      </channel>
    </channels>
The `wildfly.channels` property can be used pass a comma delimited string for the channels. The channel can be a URL or a Maven GAV. If a Maven GAV is used, the groupId and artifactId are required. Examples:
        -Dwildfly.channels="https://channels.example.org/30"
        -Dwildfly.channels="https://channels.example.org/30,org.example.channel:updates-30"
        -Dwildfly.channels="https://channels.example.org/30,org.example.channel:updates-30:1.0.2"
User Property: `wildfly.channels` Alias: `channels`
`<discoverProvisioningInfo>` | `GlowConfig` | `5.0` | Galleon provisioning info discovery. By enabling this feature, the set of Galleon feature-packs and layers are automatically discovered by scanning the deployed application. You can configure the following items: addOns: List of addOn to enable. An addOn brings extra galleon layers to the provisioning (eg: `wildfly-cli` to include CLI. context: `bare-metal` or (@code cloud}. Default to `bare-metal` failsOnError: true|false. If errors are detected (missing datasource, missing messaging broker, ambiguous JNDI call, provisioning is aborted. Default to `false` layersForJndi: List of Galleon layers required by some JNDI calls located in your application. preview: `true` | `false`. Use preview feature-packs. Default to `false`. profile: `ha`. Default being non ha server configuration. suggest: `true` | `false`. Display addOns that you can use to enhance discovered provisioning configuration. Default to `false`. excludedArchives: List of archives contained in the deployment to exclude when scanning. Wildcards (`*`) are allowed. N.B. Just the name of the archive is matched, do not attempt to specify a full path within the jar. The following examples would be valid exclusions: `my-jar.jar`, `*-internal.rar`. verbose: `true` | `false`. Display more information. The set of rules that selected Galleon layers are printed. Default to `false`. version: server version. Default being the latest released version. For example, cloud, ha profile with CLI and openapi addOns enabled. mail layer being explicitly included:
      <discover-provisioning-info>
        <context>cloud</context>
        <profile>ha</profile>
        <addOns>
          <addOn>wildfly-cli</addOn>
          <addOn>openapi</addOn>
        </addOns>
        <layersForJndi>
          <layer>mail</layer>
        </layersForJndi>
      </discover-provisioning-info>
Alias: `discover-provisioning-info`
`<dryRun>` | `boolean` | `5.0` | Do not actually provision a server but generate the Galleon provisioning configuration in `target/.wildfly-maven-plugin-provisioning.xml` file. Alias: `dry-run`
`<excludedLayers>` | `List<String>` | `-` | A list of Galleon layers to exclude. Can be used when feature-pack-location or feature-packs are set. Use the System property `wildfly.provisioning.layers.excluded` to provide a comma separated list of layers to exclude. User Property: `wildfly.provisioning.layers.excluded` Alias: `excluded-layers`
`<extraServerContentDirs>` | `List<String>` | `-` | A list of directories to copy content to the provisioned server. If a directory is not absolute, it has to be relative to the project base directory. Alias: `extra-server-content-dirs`
`<featurePacks>` | `List<GalleonFeaturePack>` | `-` | A list of feature-pack configurations to install, can be combined with layers. Use the System property `wildfly.provisioning.feature-packs` to provide a comma separated list of feature-packs. User Property: `wildfly.provisioning.feature-packs` Alias: `feature-packs`
`<filename>` | `String` | `-` | The file name of the application to be deployed. The `filename` property does have a default of `${project.build.finalName}.${project.packaging}`. The default value is not injected as it normally would be due to packaging types like `ejb` that result in a file with a `.jar` extension rather than an `.ejb` extension. User Property: `wildfly.deployment.filename`
`<galleonOptions>` | `Map<String,String>` | `-` | Arbitrary Galleon options used when provisioning the server. In case you are building a large amount of server in the same maven session, it is strongly advised to set 'jboss-fork-embedded' option to 'true' in order to fork Galleon provisioning and CLI scripts execution in dedicated processes. For example:
      <galleon-options>
        <jboss-fork-embedded>true</jboss-fork-embedded>
      </galleon-options>
Alias: `galleon-options`
`<layers>` | `List<String>` | `-` | A list of Galleon layers to provision. Can be used when feature-pack-location or feature-packs are set. Use the System property `wildfly.provisioning.layers` to provide a comma separated list of layers. User Property: `wildfly.provisioning.layers` Alias: `layers`
`<layersConfigurationFileName>` | `String` | `-` | The name of the configuration file generated from layers. Default value is `standalone.xml`. If no `layers` have been configured, setting this parameter is invalid. Default: `standalone.xml` User Property: `wildfly.provisioning.layers.configuration.file.name` Alias: `layers-configuration-file-name`
`<logProvisioningTime>` | `boolean` | `-` | Whether to log provisioning time at the end Default: `false` User Property: `wildfly.provisioning.log.time` Alias: `log-provisioning-time`
`<name>` | `String` | `-` | Specifies the name used for the deployment. When the deployment is copied to the server, it is renamed with this name. User Property: `wildfly.deployment.name`
`<offlineProvisioning>` | `boolean` | `-` | Whether to use offline mode when the plugin resolves an artifact. In offline mode the plugin will only use the local Maven repository for an artifact resolution. Default: `false` User Property: `wildfly.provisioning.offline` Alias: `offline-provisioning`
`<overwriteProvisionedServer>` | `boolean` | `-` | Set to `true` if you want to delete the existing server referenced from the `provisioningDir` and provision a new one, otherwise `false`. Default: `false` User Property: `wildfly.provisioning.overwrite-provisioned-server` Alias: `overwrite-provisioned-server`
`<packagingScripts>` | `List<CliSession>` | `-` | List of execution of CLI scripts and commands. An embedded server is started for each CLI execution. If a script file is not absolute, it has to be relative to the project base directory. CLI executions are configured in the following way:
      <packaging-scripts>
        <packaging-script>
          <scripts>
            <script>../scripts/script1.cli</script>
          </scripts>
          <commands>
            <command>/system-property=foo:add(value=bar)</command>
          </commands>
          <properties-files>
            <property-file>my-properties.properties</property-file>
          </properties-files>
          <java-opts>
            <java-opt>-Xmx256m</java-opt>
          </java-opts>
          <!-- Expressions resolved during server execution -->
          <resolve-expressions>false</resolve-expressions>
        </packaging-script>
      </packaging-scripts>
Alias: `packaging-scripts`
`<provisioningDir>` | `String` | `-` | The path to the directory where to provision the server. Can be an absolute path or a path relative to the buildDir. By default the server is provisioned into the `target/server` directory. Default: `server` User Property: `wildfly.provisioning.dir` Alias: `provisioning-dir`
`<provisioningFile>` | `File` | `-` | The path to the `provisioning.xml` file to use. Note that this cannot be used with the `feature-packs` or `configurations`. If the provisioning file is not absolute, it has to be relative to the project base directory. Default: `${project.basedir}/galleon/provisioning.xml` User Property: `wildfly.provisioning.file` Alias: `provisioning-file`
`<recordProvisioningState>` | `boolean` | `-` | Whether to record provisioning state in .galleon directory. Default: `false` User Property: `wildfly.provisioning.record.state` Alias: `record-provisioning-state`
`<runtimeName>` | `String` | `-` | Deprecated. use the `name` property instead to change the name of the deployment. The runtime name for the deployment. When the deployment is copied to the server, it is renamed with the `runtime-name`. If both `name` and `runtime-name` are specified, `runtime-name` is used. User Property: `wildfly.deployment.runtime.name` Alias: `runtime-name`
`<serverConfig>` | `String` | `-` | The name of the server configuration to use when deploying the deployment. Defaults to 'standalone.xml'. If `layers-configuration-file-name` has been set, this property is ignored and the deployment is deployed inside the configuration referenced from `layers-configuration-file-name`. The value of this parameter is also ignored if any layers are defined. Default: `standalone.xml` User Property: `wildfly.serverConfig` Alias: `server-config`
`<skip>` | `boolean` | `-` | Set to `true` if you want the goal to be skipped, otherwise `false`. Default: `false` User Property: `wildfly.package.skip`
`<skipDeployment>` | `boolean` | `-` | Skip deploying the deployment after the server is provisioned (`false` by default). Default: `false` User Property: `wildfly.package.deployment.skip`
`<stdout>` | `String` | `-` | Indicates how `stdout` and `stderr` should be handled for the spawned CLI processes. Note that `stderr` will be redirected to `stdout` if the value is defined unless the value is `none`. By default `stdout` and `stderr` are inherited from the current process. You can change the setting to one of the follow: `none` indicates the `stdout` and `stderr` stream should not be consumed `System.out` or `System.err` to redirect to the current processes (use this option if you see odd behavior from maven with the default value) Any other value is assumed to be the path to a file and the `stdout` and `stderr` will be written there Default: `System.out` User Property: `wildfly.stdout`

### Parameter Details

#### <bootableJar>

Package the provisioned server into a WildFly Bootable JAR.

Note that the produced fat JAR is ignored when running the `dev`,`image`,`start` or `run` goals.

- Type: `boolean`
- Since: `5.0`
- Required: `No`
- User Property: `wildfly.bootable.jar`
- Alias: `bootable-jar`

#### <bootableJarInstallArtifactClassifier>

When `bootable-jar` is set to true, the bootable JAR artifact is attached to the project with the classifier 'bootable'. Use this parameter to configure the classifier.

- Type: `java.lang.String`
- Since: `5.0`
- Required: `No`
- User Property: `wildfly.bootable.jar.classifier`
- Default: `bootable`
- Alias: `bootable-jar-install-artifact-classifier`

#### <bootableJarName>

When `bootable-jar` is set to true, use this parameter to name the generated jar file. The jar file is named by default `server-bootable.jar`.

- Type: `java.lang.String`
- Since: `5.0`
- Required: `No`
- User Property: `wildfly.bootable.jar.name`
- Alias: `bootable-jar-name`

#### <channels>

A list of channels used for resolving artifacts while provisioning.

Defining a channel:

    <channels>
      <channel>
          <manifest>
              <groupId>org.wildfly.channels</groupId>
              <artifactId>wildfly-30.0</artifactId>
          </manifest>
      </channel>
      <channel>
          <manifest>
              <url>https://example.example.org/channel/30</url>
          </manifest>
      </channel>
    </channels>

The `wildfly.channels` property can be used pass a comma delimited string for the channels. The channel can be a URL or a Maven GAV. If a Maven GAV is used, the groupId and artifactId are required.
Examples:

        -Dwildfly.channels="https://channels.example.org/30"
        -Dwildfly.channels="https://channels.example.org/30,org.example.channel:updates-30"
        -Dwildfly.channels="https://channels.example.org/30,org.example.channel:updates-30:1.0.2"

- Type: `java.util.List<org.wildfly.plugin.provision.ChannelConfiguration>`
- Required: `No`
- User Property: `wildfly.channels`
- Alias: `channels`

#### <discoverProvisioningInfo>

Galleon provisioning info discovery.

By enabling this feature, the set of Galleon feature-packs and layers are automatically discovered by scanning the deployed application. You can configure the following items:

- addOns: List of addOn to enable. An addOn brings extra galleon layers to the provisioning (eg: `wildfly-cli` to include CLI.
- context: `bare-metal` or (@code cloud}. Default to `bare-metal`
- failsOnError: true|false. If errors are detected (missing datasource, missing messaging broker, ambiguous JNDI call, provisioning is aborted. Default to `false`
- layersForJndi: List of Galleon layers required by some JNDI calls located in your application.
- preview: `true` | `false`. Use preview feature-packs. Default to `false`.
- profile: `ha`. Default being non ha server configuration.
- suggest: `true` | `false`. Display addOns that you can use to enhance discovered provisioning configuration. Default to `false`.
- excludedArchives: List of archives contained in the deployment to exclude when scanning. Wildcards (`*`) are allowed. N.B. Just the name of the archive is matched, do not attempt to specify a full path within the jar. The following examples would be valid exclusions: `my-jar.jar`, `*-internal.rar`.
- verbose: `true` | `false`. Display more information. The set of rules that selected Galleon layers are printed. Default to `false`.
- version: server version. Default being the latest released version.

For example, cloud, ha profile with CLI and openapi addOns enabled. mail layer being explicitly included:

      <discover-provisioning-info>
        <context>cloud</context>
        <profile>ha</profile>
        <addOns>
          <addOn>wildfly-cli</addOn>
          <addOn>openapi</addOn>
        </addOns>
        <layersForJndi>
          <layer>mail</layer>
        </layersForJndi>
      </discover-provisioning-info>

- Type: `org.wildfly.plugin.provision.GlowConfig`
- Since: `5.0`
- Required: `No`
- Alias: `discover-provisioning-info`

#### <dryRun>

Do not actually provision a server but generate the Galleon provisioning configuration in `target/.wildfly-maven-plugin-provisioning.xml` file.

- Type: `boolean`
- Since: `5.0`
- Required: `No`
- Alias: `dry-run`

#### <excludedLayers>

A list of Galleon layers to exclude. Can be used when feature-pack-location or feature-packs are set. Use the System property `wildfly.provisioning.layers.excluded` to provide a comma separated list of layers to exclude.

- Type: `java.util.List<java.lang.String>`
- Required: `No`
- User Property: `wildfly.provisioning.layers.excluded`
- Alias: `excluded-layers`

#### <extraServerContentDirs>

A list of directories to copy content to the provisioned server. If a directory is not absolute, it has to be relative to the project base directory.

- Type: `java.util.List<java.lang.String>`
- Required: `No`
- Alias: `extra-server-content-dirs`

#### <featurePacks>

A list of feature-pack configurations to install, can be combined with layers. Use the System property `wildfly.provisioning.feature-packs` to provide a comma separated list of feature-packs.

- Type: `java.util.List<org.jboss.galleon.api.GalleonFeaturePack>`
- Required: `No`
- User Property: `wildfly.provisioning.feature-packs`
- Alias: `feature-packs`

#### <filename>

The file name of the application to be deployed.

The `filename` property does have a default of `${project.build.finalName}.${project.packaging}`. The default value is not injected as it normally would be due to packaging types like `ejb` that result in a file with a `.jar` extension rather than an `.ejb` extension.

- Type: `java.lang.String`
- Required: `No`
- User Property: `wildfly.deployment.filename`

#### <galleonOptions>

Arbitrary Galleon options used when provisioning the server. In case you are building a large amount of server in the same maven session, it is strongly advised to set 'jboss-fork-embedded' option to 'true' in order to fork Galleon provisioning and CLI scripts execution in dedicated processes. For example:

      <galleon-options>
        <jboss-fork-embedded>true</jboss-fork-embedded>
      </galleon-options>

- Type: `java.util.Map<java.lang.String, java.lang.String>`
- Required: `No`
- Alias: `galleon-options`

#### <layers>

A list of Galleon layers to provision. Can be used when feature-pack-location or feature-packs are set. Use the System property `wildfly.provisioning.layers` to provide a comma separated list of layers.

- Type: `java.util.List<java.lang.String>`
- Required: `No`
- User Property: `wildfly.provisioning.layers`
- Alias: `layers`

#### <layersConfigurationFileName>

The name of the configuration file generated from layers. Default value is `standalone.xml`. If no `layers` have been configured, setting this parameter is invalid.

- Type: `java.lang.String`
- Required: `No`
- User Property: `wildfly.provisioning.layers.configuration.file.name`
- Default: `standalone.xml`
- Alias: `layers-configuration-file-name`

#### <logProvisioningTime>

Whether to log provisioning time at the end

- Type: `boolean`
- Required: `No`
- User Property: `wildfly.provisioning.log.time`
- Default: `false`
- Alias: `log-provisioning-time`

#### <name>

Specifies the name used for the deployment.

When the deployment is copied to the server, it is renamed with this name.

- Type: `java.lang.String`
- Required: `No`
- User Property: `wildfly.deployment.name`

#### <offlineProvisioning>

Whether to use offline mode when the plugin resolves an artifact. In offline mode the plugin will only use the local Maven repository for an artifact resolution.

- Type: `boolean`
- Required: `No`
- User Property: `wildfly.provisioning.offline`
- Default: `false`
- Alias: `offline-provisioning`

#### <overwriteProvisionedServer>

Set to `true` if you want to delete the existing server referenced from the `provisioningDir` and provision a new one, otherwise `false`.

- Type: `boolean`
- Required: `No`
- User Property: `wildfly.provisioning.overwrite-provisioned-server`
- Default: `false`
- Alias: `overwrite-provisioned-server`

#### <packagingScripts>

List of execution of CLI scripts and commands. An embedded server is started for each CLI execution. If a script file is not absolute, it has to be relative to the project base directory. CLI executions are configured in the following way:

      <packaging-scripts>
        <packaging-script>
          <scripts>
            <script>../scripts/script1.cli</script>
          </scripts>
          <commands>
            <command>/system-property=foo:add(value=bar)</command>
          </commands>
          <properties-files>
            <property-file>my-properties.properties</property-file>
          </properties-files>
          <java-opts>
            <java-opt>-Xmx256m</java-opt>
          </java-opts>
          <!-- Expressions resolved during server execution -->
          <resolve-expressions>false</resolve-expressions>
        </packaging-script>
      </packaging-scripts>

- Type: `java.util.List<org.wildfly.plugin.cli.CliSession>`
- Required: `No`
- Alias: `packaging-scripts`

#### <provisioningDir>

The path to the directory where to provision the server. Can be an absolute path or a path relative to the buildDir. By default the server is provisioned into the `target/server` directory.

- Type: `java.lang.String`
- Required: `No`
- User Property: `wildfly.provisioning.dir`
- Default: `server`
- Alias: `provisioning-dir`

#### <provisioningFile>

The path to the `provisioning.xml` file to use. Note that this cannot be used with the `feature-packs` or `configurations`. If the provisioning file is not absolute, it has to be relative to the project base directory.

- Type: `java.io.File`
- Required: `No`
- User Property: `wildfly.provisioning.file`
- Default: `${project.basedir}/galleon/provisioning.xml`
- Alias: `provisioning-file`

#### <recordProvisioningState>

Whether to record provisioning state in .galleon directory.

- Type: `boolean`
- Required: `No`
- User Property: `wildfly.provisioning.record.state`
- Default: `false`
- Alias: `record-provisioning-state`

#### <runtimeName>

Deprecated.
use the `name` property instead to change the name of the deployment.
The runtime name for the deployment.

When the deployment is copied to the server, it is renamed with the `runtime-name`. If both `name` and `runtime-name` are specified, `runtime-name` is used.

- Type: `java.lang.String`
- Required: `No`
- User Property: `wildfly.deployment.runtime.name`
- Alias: `runtime-name`

#### <serverConfig>

The name of the server configuration to use when deploying the deployment. Defaults to 'standalone.xml'. If `layers-configuration-file-name` has been set, this property is ignored and the deployment is deployed inside the configuration referenced from `layers-configuration-file-name`.

The value of this parameter is also ignored if any layers are defined.

- Type: `java.lang.String`
- Required: `No`
- User Property: `wildfly.serverConfig`
- Default: `standalone.xml`
- Alias: `server-config`

#### <skip>

Set to `true` if you want the goal to be skipped, otherwise `false`.

- Type: `boolean`
- Required: `No`
- User Property: `wildfly.package.skip`
- Default: `false`

#### <skipDeployment>

Skip deploying the deployment after the server is provisioned (`false` by default).

- Type: `boolean`
- Required: `No`
- User Property: `wildfly.package.deployment.skip`
- Default: `false`

#### <stdout>

Indicates how `stdout` and `stderr` should be handled for the spawned CLI processes. Note that `stderr` will be redirected to `stdout` if the value is defined unless the value is `none`.
By default `stdout` and `stderr` are inherited from the current process. You can change the setting to one of the follow:

- `none` indicates the `stdout` and `stderr` stream should not be consumed
- `System.out` or `System.err` to redirect to the current processes (use this option if you see odd behavior from maven with the default value)
- Any other value is assumed to be the path to a file and the `stdout` and `stderr` will be written there

- Type: `java.lang.String`
- Required: `No`
- User Property: `wildfly.stdout`
- Default: `System.out`