Using the hippo-cms7-release pom for Bloomreach Content projects
Overview
The hippo-cms7-release master pom provides a central definition for all standard Bloomreach Content product artifact dependencies. It specifies the correct combination of versions for an officially supported Bloomreach Content release. Using this pom simplifies setup and maintenance for your custom Bloomreach Content project and streamlines the process of upgrading to newer versions. For each supported release, a corresponding version of the hippo-cms7-release pom is published in the Hippo Maven repository. For example:
org.onehippo.cms7:hippo-cms7-release:pom:13.0.0
Features of the hippo-cms7-release pom
Standardized Product Version Properties
The hippo-cms7-release pom defines a set of properties for each standard Bloomreach Content product version:
<properties> <hippo.repository.version>13.0.0</hippo.repository.version> <hippo.cms.version>13.0.0</hippo.cms.version> <hippo.packages.version>13.0.0</hippo.packages.version> <hippo.hst.version>13.0.0</hippo.hst.version> ... <forge.dashboard-document-wizard.version>13.0.0</forge.dashboard-document-wizard.version> <forge.gallerypicker.version>13.0.0</forge.gallerypicker.version> .. </properties>
These properties ensure that all Bloomreach Content product artifacts use consistent versions. The combination of versions defined in the hippo-cms7-release pom represents the officially supported release. Other version combinations are possible, but may not be validated or supported unless explicitly stated.
To override a specific product version (for example, to use a newer version), redefine the relevant property in your project's pom:
<properties>
...
<!-- Temporary override to a development version of HST -->
<hippo.hst.version>13.0.1-SNAPSHOT</hippo.hst.version>
...
</properties>
No additional changes are required. When a new hippo-cms7-release pom includes your override version (or newer), update your parent pom and remove the override. Reviewing your project's properties makes it clear if any product versions have been customized.
Note: The
hippo-cms7-releasepom defines properties for both core Bloomreach Content products and certified CMS/site plugins.
Standard Maven Repositories
The hippo-cms7-release pom includes definitions for useful Maven repositories, such as the Hippo forge repository for CMS and site plugins. For certified Bloomreach Content artifacts, you only need the standard Hippo Maven repository for the hippo-cms7-release pom.
Dependency Management for Product Artifacts
The dependency management section in the hippo-cms7-release pom lists all artifacts for each Bloomreach Content product, as specified by the version properties. This includes all available artifacts for a specific release, even those typically used internally for testing.
To add a dependency to your project, copy the definition from the hippo-cms7-release pom. Do not specify a <version> element in your dependency; instead, inherit the version from the dependency management configuration. Manage artifact versions only through the hippo-cms7-release pom or by overriding the relevant property as described above.
Include only the dependencies your project actually uses. Remove any dependencies that are no longer required to keep your project's dependency list accurate.
Inheriting from the hippo-cms7-project Parent Pom
The hippo-cms7-release pom inherits from the hippo-cms7-project parent pom, which is also the parent for all standard Bloomreach Content products. By using hippo-cms7-release as your parent, you inherit Maven metadata from hippo-cms7-project. This includes minimum required Maven and Java versions, validated plugin versions, default license (ASL2), organization information, and developer details.
Not all inherited metadata may be relevant for your custom project. Review and update the following standard Maven pom elements as needed for your project, or reset them by redefining them with empty values:
<url/>
<inceptionYear/>
<organization/>
<licenses>
<license/>
</licenses>
<mailingLists>
<mailingList/>
</mailingLists>
<developers>
<developer/>
</developers>
<contributors>
<contributor/>
</contributors>
<issueManagement/>
<scm>
<connection/>
<developerConnection/>
<url/>
</scm>
<ciManagement/>
<distributionManagement>
<repository>
<id/>
<url/>
</repository>
<snapshotRepository>
<id/>
<url/>
</snapshotRepository>
</distributionManagement>
When you generate a new project using the Hippo archetype, these empty values are set automatically.
Creating a New Bloomreach Content Project
To create a new Bloomreach Content project with the hippo-cms7-release pom as parent, use the Hippo website archetype. For detailed instructions, see the Getting Started Trail.
Enterprise Projects
For enterprise projects, use the hippo-cms7-enterprise-release pom as your parent instead of hippo-cms7-release.