Application Assembler
Generates a structure like:
bin/ conf/ ext/ repo/<maven repository>
bin contains a set of wrapper scripts that will build a classpath from repo/ and start the application.
Operation Modes
Release Mode
Builds the application by copying over all dependent artifacts and the artifact itself into repo/ and creates scripts in bin/ that will execute the application.
SNAPSHOT Mode
Includes a few Maven artifacts to enable downloading of updated artifacts. Adds a special script under bin/ to update the content of the built-in repository (repo/)
Test Mode
Generates bin scripts that builds the classpath from ~/.m2/repository instead of from repo/. This makes faster to test the application without having to reassemble the entire application.
Example Configuration
Development Proposals
Launchers
A launcher can be said to include any component that allows a java cass to interact with the native system in a way that the native system expects. On windows it might be an executable file or a shell script on a *nix platform that can launch a the java vm.
Maximum flexibility can be achieved if the launcher element can specify the platform. this also allows a single assembly to include launchers for multiple platforms:
however it might be useful to define a wrapping element that specifies the platform because there will likely be multiple configuration components that use the same platform. For example:
The same effect can be had in the second example by creating multiple "applications" and pointing them at the same target.
Application Layout
By using a layout configuration element, the layout of the final product can be controlled by the developer while still allowing the plugin to properly place the components in the correct place:
The names of the default layout don't really matter although the meaning of the different configuration elements in a layout matter (and so does keeping things so they look as expected).
element |
default |
meaning |
|---|---|---|
bin |
bin |
The locationt aht the launchers and supporting code is deposited. |
conf |
conf |
The location of configuration files for the application. |
jarLib |
jarLib |
The location for jar libraries |
nativeLib |
nativeLib |
The location of any native components/liraries. |
jreHome |
jreHome |
The location of the bundles jre (if that feature is added). |
repo |
repo |
? |
ext |
ext |
? |
2 Comments
Hide/Show CommentsMay 16, 2006
rakesh
I tried looking for this pluginin ibiblio but could not find out.
Where can I get this plugin from?
Dec 03, 2006
Brill Pappin
It's still a long way from being released. If you want to play you'll have to check it out of the codehaus mojo repository.