Introduction

Maven build

Naggregator, just like the other BugWerk subprojects, utilizes Apache Maven for the compilation, packaging, site generation and database scheme creation. Despite the higher complexity (compared to Apache Ant), it eases the build due to the build-in handling of dependency files which it automatically downloads from the net - resulting in a much easier build for external developers. So much for the theorie... unfortunately, there are 4 dependencies that you will have to download manually due to license requirements but at least this has to be done only once.

Get the toolchain in position

Setup the build configuration

BugWerk`s maven build relies on a couple of build properties that control the actual build output. These properties can be controlled via ~/.m2/settings.xml (a settings.xml template is available); the different properties are grouped into usage scenarios (so called profiles) which can be enabled at the command line when executing the build.

Example: settings.xml defines two profiles named mailing-disabled and mailing-enabled. By executing

mvn -P mailing-disabled clean install

the created build artifact will contain a configuration that disables the internal mailing capabilities which might me interesting for development builds.

You can also declare the different profiles to be active by default in settings.xml in the following section:

<activeProfiles>
        <activeProfile>codehaus-plugins</activeProfile>
        <activeProfile>common-properties</activeProfile>
        <activeProfile>mailing-disabled</activeProfile>
        <activeProfile>postgres-properties</activeProfile>
        <activeProfile>bind-hsqldb</activeProfile>
</activeProfiles>

Note: please make sure that the different profiles contain valid values for your environment (e.g. the location of your JWSDP install).

Start an initial build

  • Check out the desired version of Naggregator
  • Run mvn clean install in the check out directory; you will see a lot of dependencies being downloaded from the central repository. The compilation will stop, requesting the download of 4 additional artifacts that cannot be automatically downloaded from the central repository due to licensing issues. The following items need to be provided:

    As soon as these libraries are present, the build process can be restarted and will run until finished.

  • Rerun mvn clean install: the build should run without interruption