= Application Composer Maven Plugin
:jbake-date: 2016-03-16
:jbake-type: page
:jbake-status: published
:jbake-tomeepdf:

This plugin has two goal:

- `applicationcomposer:run`: to start the application from mvn command line
- `applicationcomposer:zip`: to package a zip with dependencies and start scripts

IMPORTANT: the dependencies are retrieved with `MavenProject.getArtifacts()` which means you artifacts should be a `war`
- maven doesn't populate it with a `jar` - and the compile phase - at least - should be passed to ensure it is populated.

=== Run goal configuration

[source]
----
mvn process-classes applicationcomposer:run -DskipTests
----

[.table.table-bordered,options="header"]
|===
| Name | Default | Description
| args | - | a list of application arguments
|application|-|application qualified name
|binaries|${project.build.outputDirectory}|where is your module code (target/classes)
|mavenLog|true|force to use maven logging in openejb
|===

=== Zip goal configuration

[source]
----
mvn process-classes applicationcomposer:zip -DskipTests
----

[.table.table-bordered,options="header"]
|===
| Name | Default | Description
|workDir|${project.build.directory}/${project.build.finalName}-applicationcomposer| where the container can "work" and create temp files
|zip|${project.build.directory}/${project.build.finalName}-applicationcomposer.zip| where to create the zip
|attach|true|attach the created artifact
|classifier|-|artifact classifier if needed
|application|-|application qualified name
|binaries|${project.build.outputDirectory}|where is your module code (target/classes)
|===
