The 'Booter' Mechanism

Generated Directory Structure

Based on the described plugin configuration you will find the following structure within the target folder after doing a mvn clean package (only excerpts):

.
|-- appassembler
|   `-- repo
.         .
|-- generated-resources
|   `-- appassembler
.         .

The structure under target/appassembler/repo looks like this and contains all dependencies you have defined in your project plus the defined dependency to the appassembler-booter artifact.

.
`-- repo
    |-- junit
    |   `-- junit
    |       `-- 3.8.1
    |           `-- junit-3.8.1.jar
    |-- net
    |   `-- java
    |       `-- dev
    |           `-- stax-utils
    |               `-- stax-utils
    |                   `-- 20060502
    |                       `-- stax-utils-20060502.jar
    |-- org
    |   `-- codehaus
    |       |-- mojo
    |       |   `-- appassembler
    |       |       |-- appassembler-booter
    |       |       |   `-- 1.10
    |       |       |       `-- appassembler-booter-1.10.jar
    |       |       |-- appassembler-model
    |       |       |   `-- 1.10
    |       |       |       `-- appassembler-model-1.10.jar
    |       |       `-- example
    |       |           `-- appassembler-example-booter
    |       |               `-- 1.0-SNAPSHOT
    |       |                   `-- appassembler-example-booter-1.0-SNAPSHOT.jar
    |       `-- plexus
    |           `-- plexus-utils
    |               `-- 1.5.6
    |                   `-- plexus-utils-1.5.6.jar
    `-- stax
        |-- stax
        |   `-- 1.1.1-dev
        |       `-- stax-1.1.1-dev.jar
        `-- stax-api
            `-- 1.0.1
                `-- stax-api-1.0.1.jar

The following structure can be found under target/generated-resources/appassembler. The booter-unix/bin/my-server script is the unix script for running your application whereas the booter-windows/bin/my-server.bat script is the Windows script. The booter-unix/etc/my-server-xml file contains all dependencies which is later been read by the booter mechanism to start your application.

.
`-- appassembler
    |-- booter-unix
    |   |-- bin
    |   |   `-- my-server
    |   `-- etc
    |       |-- my-server
    |       |   `-- lib
    |       .....
    |       `-- my-server.xml
    `-- booter-windows
        |-- bin
        |   `-- my-server.bat
        `-- etc
            |-- my-server
            |   `-- lib
            |.....
            `-- my-server.xml

The structures under etc/myserver/lib is created based on the current inflexibility of the appassembler-plugin (might be fixed in the future).

And finally you would like to have a running example which can be looked at the How to get an running application? section.