Each module is responsible for providing a build.xml that describes how the module should be built and assembled. Each build.xml defines a set of targets:
compile - compiles the source code of the module |
dist - creates a binary distribution of the module |
doc - builds the javadoc for the module |
clean - removes all files and directories generated by the module |
update - updates the module with changes in the CVS repository (developers only) |
commit - commits local changes to the CVS repository (developers only) |
Enviroment dependencies are provided in build.properties, for each module, use build.properties.sample as a template if you need make local changes. Some of the properties used in build process:
lib_3pp - the location of third party libraries, ie scam_libs |
lib - the location of module dependent SCAM libraries and the destination of each module distribution. |
skip.dependencies - set this flag if the module dependencies are stable, ie dependent modules will not be built in the build process. |
skip.repository - set this flag to exclude the the SCAM repository from build process, eg if the application will relay on a SCAM repository that is already deployed (only used by scamPortfolio). |
manifest.classpath - value of the "Class-Path" atribute in the module distribution manifest, eg the META-INF/manifest.mf. |
jndi.prefix - defines a prefix for the JNDI-name associated with a EJB, eg using unique prefix enables an application to have dedicated EJB's. |
context - defines the context of the application, eg 'portfolio' for the SCAM Portfolio application. |
ui.language.default - defines the default language used in the user interface of the application. |
scam.repository.datasource - defines the JNDI-name associated with the datasource for the repository. |
scam.repository.content.base - defines the root location for downloaded files. |
scam.repository.temp.content.base - defines root location for temporary files |
scam.repository.backup.base - defines the the root location for backupfiles. |
scam.commandchain.file - defines the file containig command-chain definition. |
scam.application.prefs.file - defines the file containing application preferences. |
scam.views.file = defines the file containing view definitions. |
scam.role.admin - defines the name of the admin role |
scam.role.guest - defines the name of the guest role, a role associated with anonymous users. |
Each module will by default build all dependent SCAM modules, the location of dependent modules is defined by properties (eg scamDrutten.home). The default is to have all modules in a flat organization.
[some folder] | +-- scamController | +-- scamDrutten | +-- scamEditor | +-- scamPortfolio | +-- scamRepository | +-- scamTaglib | :
If you choose another organization strategy you have to define location of each module.
The scamPortfolio application can be built as a self-contained application (does not include JBoss though).