Toggle menu

Resource Project Structure

When setting up a resource project for release and deployment, you must ensure your project is configured as follows.


In the root of your project there should be a pom.xml file that describes the project and its configuration.

Download an Example pom.xml(word)[3KB]

iCM content/definition exports

Any iCM content exports (except for end points) should be included in the project under:


For example:


Resource filtering

By default, any files under src/main/resources or target/generated-resources (where generated end point exports are output) will be passed through Maven resource filtering. This means that it is possible to include certain tokens in those files which will be substituted when the project is packaged up. For example ${version} is replaced with the value of the <version> element in the pom.xml.

IMPORTANT NOTE: The default Maven token syntax is the same as JavaScript's template literal syntax, so if your project makes use of JS template literals, care should be taken not to use variable names that will collide with Maven property names (eg ${version}).

End points

If the project includes end points, it will need to be configured to use the endpoints-maven-plugin (see the example pom above). Once this is done, end point .export files can be unpacked by adding them to the root of the project and running the following command:

mvn generate-sources

By default, end points will be unpacked to src/main/endpoints/.  Any unpacked end points will be re-packaged into a single export file and included in the resulting artifacts when the project is built.

IMPORTANT NOTE: Only unpacked end points should be committed to version control.


If the project is internationalised (and the pom configured to run the i18ngen-maven-plugin) then any CSVs containing default translations should be included under src/main/resources/i18n/.

Last modified on 13 May 2021

Share this page

Facebook icon Twitter icon email icon


print icon