OpenGeo Suite README
These instructions describe how to build platform independent components of OpenGeo Suite.
The following base software packages are required.
- Java 7 - Java Development Kit (JDK) - 1.7+ or Open JDK 7
- Apache Ant - 1.8+
- Apache Ivy - 2.3+
- Git - 1.7.10+*
Some modules require additional packages:
- Apache Maven - 3.0+
- JSTools - Latest
- Sphinx - 1.0+ (the full build requires LaTeX support)
- NodeJS - Latest version
Ensure that all the above are installed so that the associated executables are on the
PATH of the user building the suite.
Clone the repository:
% git clone git://github.com/opengeo/suite.git suite % cd suite
Initialize submodule dependencies:
% git submodule update --init --recursive
Do a full build:
Or build the module of your choice:
% cd docs % ant
Build System Overview
The suite repository is made up a number of modules (ie projects). During development typically modules are built individually as opposed to all at once. The primary build tool for suite is Ant. For some modules the ant script delegates to the modules native build tool such as Maven or Sphinx.
All top level modules have a
build.xml that defines the following targets:
build- Builds the project, the result of this is something deployable in the development environment. This target is the default.
clean- Cleans the project deleting all build artifacts.
assemble- Assembles the project into a zip archive suitable for deployment in production. This is the artifact consumed by installer builders.
publish- Publishes the zip archive to a final location.
all- Runs all the above targets.
Building for development purposes typically looks like:
ant clean build
Building for deployment purposes typically looks like:
ant clean build assemble
Or to build everything:
The build directory contains common build files used by modules.
- common.xml - Common ant targets used by module build files. Every module build file imports this file as the first step.
- build.properties - Default build properties that can be overridden on a global or per module basis.
Many aspects of the suite build such as file locations, executable names, etc... are parameterized into build properties. The default build.properties contains a list of default values. Often these default properties must be overridden to cater to the environment (eg. Windows vs Unix) or to cater to specifics of a particular module.
There are two ways to override build properties:
The first is to specify them directly to the ant build command with the Java system property (-D) syntax. For example:
% ant -Dsuite.build_cat=release build
Creating a file named
local.propertieseither at the global level or at the module level. The global
local.propertiesis located in the build directory next to
build.properties. Module specific
local.propertiesfiles are located next to the module
build.xmlfile. Naturally the module specific local properties file overrides properties from its global counterpart.
Using any combination of the above method it should never be necessary to modify the
build.properties file directly.
The suite repository is composed of the following modules:
Consult the module README files for module specific information.