Apache Sling > Sling CMS > Developers > Project Intro
This page will give you an introduction of the structure of the Sling CMS project and some idea of how all of this comes together. If you aren‘t planning on extending or contributing to Sling CMS, this probably isn’t necessary for you.
The Sling CMS project has five main modules:
/libs/sling-cms
although there are some other directories for configurationsThe API can be imported into your Maven project with the following dependency include in your pom.xml in the dependencies
element:
<dependency> <groupId>org.apache.sling</groupId> <artifactId>org.apache.sling.cms.api</artifactId> <version>CURRENT_VERSION</version> <scope>provided</scope> </dependency>
Sling CMS uses Gulp to build the front end code which is them packaged by Maven into the overall project build. This can be a bit chatty over the network if you run mvn clean install
with every build, so unless you are updating the front end code, it's often better to just run mvn install
Most of the scripts are installed under the directory /libs/sling-cms/components
and the content is under /libs/sling-cms/content
The Sling CMS uses Sling Resource Merger to allow developers to overlay content provided in the base CMS. This means that although the default content is stored in /libs/sling-cms/content
it is actually referenced under /mnt/overlay/sling-cms/content
which is merged with /apps/sling-cms/content
using Sling Resource Merger, finally a default Resource Resolver Factory configuration them maps this path to /cms
for shorter URLs.