Dear Wiki user, You have subscribed to a wiki page or wiki category on "James Wiki" for change notification.
The following page has been changed by RobertBurrellDonkin: http://wiki.apache.org/james/Development/Modularisation The comment on the change is: Details about how the proposed build would work ------------------------------------------------------------------------------ Need to think about timing of mailet API move + ---- + + = Understanding The Modular Build = + + == Master Build == + + Adopting some standard naming conventions allows the master build to automatically pick up all modules of a particular type. Subant can then be used to call the same target to all module build files of a particular type. This allows the modular build to automatically maintain the correct build order within needing to know about detailed relationships between modules. + + Suggested conventions: + + * Deployment modules - ''*deployment'' for example pheonix-deployment + * Function modules - ''*function'' for example smtp-function + * Library modules - ''*library'' for example user-repository-library + * API modules = ''*api'' for example james-core-api + + == Module Builds == + + === Minimal Requirements === + + ==== Deployment Modules ==== + + The minimum requirement is for modules to provide an ant build file which: + + * provides standard targets: + * clean + * lite + * dist + * everything + + ==== Other Modules ==== + + The minimum requirement is for modules to provide an ant build file which: + + * provides standard targets: + * dist + * clean + * creates artifacts in standard relative position + + === Standard Module Builds === + + To reduce maintenance, standard builds will be provided for modules that want to adopt a standard module layout. +