Build Hippo CMS From Source 

The Hippo CMS project has been split into a number of components. This allows separate release cycles and reduces the amount of code that will be rebuilt when only working on a sub-project.

You need to have the following installed to be able to build all Hippo CMS components:

Define the Hippo Maven snapshot repository

All Hippo components are automatically built every night and their snapshots deployed to our Maven snapshot repository. In order to pull these in, your build environment must include the snapshot repository. To do this, set up your project in the following way:

Add the Hippo snapshot repository to your settings.xml by defining the following profile:

<settings>
  <profiles>
    <profile>
      <id>use-hippo-maven2-snapshots</id>
      <activation>
        <property>
          <name>hippo.snapshots</name>
          <value>true</value>
        </property>
      </activation>
      <repositories>
        <repository>
          <id>hippo-maven2-snapshots</id>
          <name>Hippo Maven 2 Snapshots</name>
          <url>https://maven.onehippo.com/maven2-snapshots/</url>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
          <releases>
            <enabled>false</enabled>
          </releases>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>hippo-maven2-plugin-snapshots</id>
          <name>Hippo Maven 2 Plugin Snapshots</name>
          <url>https://maven.onehippo.com/maven2-snapshots/</url>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
          <releases>
            <enabled>false</enabled>
          </releases>
        </pluginRepository>
      </pluginRepositories>
    </profile>
  </profiles>
</settings> 

Using the above profile, you now can:

a) Enable the snapshots profile in your development machine, by modifying or setting your $MAVEN_OPTS environment variable to enable the hippo.snapshots by default:

$ export MAVEN_OPTS="$MAVEN_OPTS -Dhippo.snapshots=true"   

b) temporarily disable the snapshots profile (for instance when tagging or building a tag) by using

$ mvn -Dhippo.snapshots=false ...

Or, if you don't want to enable it by default via your MAVEN_OPTS, enabling it only when you need it:

$ mvn -Dhippo.snapshots=true ...

Clone and build the archetype

$ git clone https://code.onehippo.org/cms-community/hippo-project-archetype.git
$ cd hippo-project-archetype
$ git checkout release/4.x
$ mvn clean install

This will have built the archetype, which features a pre-built installed archetype in its target directory with all the latest code. To start it do:

$ cd target/gettingstarted
$ mvn -P cargo.run

Check out the core Hippo open source projects you need

Depending on the project or projects you wish to work on, you can download the source code from the following locations:

You can use Git to clone one or all of the following source repositories:

These are only the main projects. For the full list of projects go to https://code.onehippo.org/groups/cms-community.

All the Hippo 11 code is maintained in release branches, not in the master branch. Master is the branch from which the next major Hippo release will be cut. To find the branch or tag of a project for a specific Hippo release inspect the Hippo release POM you are using (this is either the parent POM of your project in the case you using Hippo Community Edition, or the grandparent POM of your project in case you are using Hippo Enterprise Edition) and check the version of the project you are using (you can also find this out by doing mvn dependency:tree in your project. The branch you are looking for is named release/major.minor.

$ git clone https://code.onehippo.org/cms-community/hippo-repository.git
$ git checkout release/4.x
$ mvn clean install -DskipTests

By downloading Hippo CMS Community Edition, you agree to comply with our open source license, as well as the licenses of other components we include in our distribution. For an extensive overview of open source licenses, see our page on licenses.

The code of Hippo CMS Community Edition is licensed under the Apache Software License 2.0. All included libraries are distributed either under the Apache Software License 2.0 or a compatible license, with the exception of the Sencha ExtJS library. Sencha ExtJS is distributed under GPL v3, with an Open Source License Exception for Applications. If you customise or redistribute Hippo Community Edition code that uses ExtJS components, then you must comply to their open source licenses - or buy an appropriate developer license from Sencha.

Build the projects

You can build each of these projects by performing

mvn -DskipTests clean install

Then rebuild the archetype gettingstarted project using

mvn clean verify

Use JRebel

If you have JRebel installed, you can easily speed up this development cycle using JRebel.

Simply build the core projects with JRebel switch enabled:

mvn -DskipTests -Djrebel clean install

And build the gettingstarted project as before, but start it also with the JRebel switch enabled:

mvn -Pcargo.run -Djrebel

Frontend Development

For instructions on how to develop the CMS frontend with automated builds see the README in the relevant projects/modules.