Why another distribution plugin?
Some software systems are made of many artifacts and may require an aggregation of many
"external" components or third parties to have a complete distribution.
In a production environment, deployment rules may be very strict and software teams may have
to follow prescribe procedures on how and where their system should be installed, especially
on Unix environments where proper file rights attribution are crucial.
The one fits all rule doesn't apply here and building the distribution becomes an complex task in itself.
The goal of the UberDist plugin is to integrate the basic mechanism of having a custom goal called to
build this project specific complex distribution. In other words, use the full power of maven to build your distribution
using a project specific goal you write. But, it also automates some recurring tasks and most of all leverages
the enormous amout of available facilities provided by the Maven build environment to give better control
on the deployment file structure.
|Goals||Document listing all callable and internal goals of the UberDist maven plugin.|
|Tags||The UberDist plugin defines Jelly tags to perform some basic operations. These tags are listed and explained in this document.|
|Properties||The behavior of the Maven UberDist Plugin can be altered as many plugins via several properties. This document describes each property available, and the default values used if none are supplied in the project.|
|FAQs||Question and answers to get you up and running in no time!|
UberDist with results of maven a project compilation but not in the location they are generated at.
The plugin uses 2 directories that are defined by properties:
When one of the distribution building goal is called (either one of uber-dist:make, build or prepare-dist-filesystem),
the plugin will call its internal init goal ( uber-dist:init ), this is when you register your project with a postGoal. See uber-dist:registerProject tag
See also FAQ: register-project
Once your project is registered, UberDist prepares the necessary directories, based on its property values.
Now comes the time to copy all necessary files in the distribution assembly. UberDist will first call YOUR distribution goal.
Ex.: For a a maven project with id: myproject, the goal myproject:prepare-dist-filesystem will be called.
Then, the plugin will call a list of internal goals designed to help you building your distribution with minimum
jelly code added in your project.