Using Maven and Project Object Modeling

Maven's Project Object Modeling (POM) system lets you manage project builds, reporting, and documentation all in one place.

Apache Maven is a project management service. Maven is based on a project modeling concept called Project Object Modeling (POM). Using POM, Maven can manage all of your project build, reporting, and documentation in one place. Developers typically interact with Maven through dependency management while working on HCL Commerce customization.

In the context of Maven, a dependency is simply a JAR file used by your customization. Based on the POM file, your Maven extension Eclipse plugin downloads and adds the JAR file to your Java path. This JAR file is downloaded to your local file system which is typically located under your user home subdirectory, and is named .m2/repository.

You can find the Maven Central Repository for HCL Commerce at https://mvnrepository.com/artifact/com.hcl.commerce.

The Group ID for HCL Commerce is com.hcl.commerce.

The following artifacts are present in the Maven repository.

  1. commerce-search-processor
  2. cf-base
  3. hcl-cache-core
  4. query-api
Note: While setting up the search bundle project, now there is no need to copy paste the jar files from docker images and to manually include these jar files in the search bundle project.

If you set up a search bundle project for versions 9.1.12.0 to 9.1.14.0 and plan to use the Maven central repository instead of manually copying the JAR files, change the declaration of the commerce-search-processor, cf-base and hcl-cache-core dependencies in the POM files of your search bundle project. Use the format shown in this example from HCL Commerce Search Version 9.1.12.

<dependency>
<groupId>com.hcl.commerce</groupId>
<artifactId>commerce-search-processors</artifactId>
<version>9.1.12.0</version>
<scope>compile</scope>
</dependency>
Trouble: If you face issues with any dependency, try changing the version of that dependency to fix the issue. It is advisable that you use the latest version of all the dependencies when you set up your project.