Maven template to create a new AEM project as starting point to develop your own functionality.
Java HTML CSS JavaScript
Latest commit cbc292f Feb 27, 2017 @rombert rombert README: reference version 2.4 of the maven-archetype-plugin
The 3.0.0 version of the maven-archetype-plugin has introduced a new
feature ( or enhancement, but let's not be pedantic ) which means
we need to add remote repositories to ~/.m2/settings.xml .

I think this is too big of a hassle, so we will just reference an
older version of the plugin in the README for using remote

See also

Fixes #76

AEM project archetype

Build Status

This archetype creates a minimal Adobe Experience Manager project as starting point for your own projects. The properties that must be provided when using this archetype allow to name as desired all parts of this project.

This project has a number features that are intended to offer a convenient starting point for new projects:

  • 2 Pages
    • English and French pages with filler text
  • 2 Templates
    • For homepage and content pages
    • Homepages are only allowed on top level, and content pages below
  • Page component
    • Built with Sightly templates and simple server-side JavaScript logic
    • The CSS class on the body element changes based on page template
    • Internationalized footer text as example
  • Structure Components
    • Topnav: simple custom Sightly component
    • Logo: based on foundation
  • Content Components
    • helloworld: example of custom Sightly component with SlingModels for the logic
    • colctrl, textimage, text, image, title: use the Sightly foundation components
  • Configurations
    • Device emulators displayed in the authoring interface
    • Allow direct drag & drop of assets from the content finder into parsys (6.1 TouchUI)
    • Dictionnary structure for internationalizing hardcoded strings
  • Client libraries
    • Responsive layout with colctr that break for narrow pages
    • CSS class names follow BEM naming conventions
    • Component-specific styles stored within each component
    • Master ClientLib under /etc/designs merges all client libraries into one file
  • Bundle with some examples
    • Models: Models for more complex business logic of components
    • Servlets: Rendering the output of specific requests
    • Filters: Applied to the requests before dispatching to the servlet or script
    • Schedulers: Cron-job like tasks
  • Tests
    • Unit tests
    • Integration tests
    • Client-side Hobbes tests within developer mode


To use a released version of this archetype:

Either use the AEM Eclipse extension and follow the New Project wizard (choosing AEM Sample Multi-Module Project)...

Or use your mvn skills:

mvn org.apache.maven.plugins:maven-archetype-plugin:2.4:generate \
 -DarchetypeGroupId=com.adobe.granite.archetypes \
 -DarchetypeArtifactId=aem-project-archetype \
 -DarchetypeVersion=10 \

Where 10 is the archetype version number that you want to use.

Available properties

groupId Maven GroupId
groupId Base Maven groupId
artifactId Base Maven ArtifactId
version Version
package Java Source Package
appsFolderName /apps folder name
artifactName Maven Project Name
componentGroupName AEM component group name
contentFolderName /content folder name
cssId prefix used in generated css
packageGroup Content Package Group name
siteName AEM site name


  • Adobe Experience Manager 6 or higher
  • Apache Maven (3.x should do)


To compile and use an edge, local version of this archetype:

mvn clean install

Then change to the directory in which you want to create the project and run:

mvn archetype:generate \
 -DarchetypeGroupId=com.adobe.granite.archetypes \
 -DarchetypeArtifactId=aem-project-archetype \