Building Shale with Maven


From the 'framework' directory of the Shale source code:

$ mvn

Default build. Includes the framework jars.

$ mvn clean -P apps,dist,designtime

Deletes the 'target' directory from every module

$ mvn -Papps,itest

Builds the framework and example apps, executes the integration tests [1]

[1] Set the cargo.container.home property with -Dcargo.container.home=/path/to/tomcat5 or in settings.xml


Build profiles allow conditional inclusion of additional items. Shale's build profiles can be enabled either with -P and a comma delimited list: -P<profile1>,<profile2> or with individual system properties: -D<profile1> -D<profile2>.

apps - Builds the shale-apps module, which includes all of the example apps: shale-blank, shale-usecases, etc.

itest - Runs the system integration tests for the example apps. Requires the 'cargo.container.home' system property to be set to (usually) the path to a locall installation of Tomcat 5.

designtime - Builds the designtime module.

dist - Includes the shale-dist module, which contains the release assemblies. Not necessary for the build, but useful when generating IDE config files.

NOTE: To build the dist project you must have already built the site by running  mvn site  from the framework project.

Integration Testing

The Maven build lifecycle includes a phase for integration testing. See MNG-1381 and the Testing Strategies wiki page for more information.

Each Shale example app contains integration tests in its o.a.s.<appname>.systest package.

To execute these tests, enable the itest profile

MavenBuild (last edited 2009-09-20 21:52:45 by localhost)