Lazybones templates for Adobe Experience Manager
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
gradle/wrapper updating build script Aug 27, 2014
templates version bump Apr 3, 2018
.gitignore updating build script Aug 27, 2014
.project init Aug 21, 2014
COPYRIGHT #legal Aug 26, 2014
LICENSE #legal Aug 26, 2014 add note about dropping < 6.3 support Apr 3, 2018
build.gradle don't require bintray properties to be set to do an install Oct 20, 2016
gradlew init Aug 21, 2014
gradlew.bat init Aug 21, 2014

Adobe Consulting AEM Lazybones Templates

This project contains project templates (right now just one) for creating Adobe Experience Manager projects using the Lazybones project creator. Lazybones is a far more interactive project creation tool than Maven Archetypes. Using these templates allows you to both bootstrap your AEM project with an appropriate structure, but also enable some of the core features from ACS AEM Commons.

As of version 0.1.0, only AEM 6.3 or higher is supported. If you need to generate a project for an earlier version, you'll have to manually set the version to 0.0.38 on the command line.

Installing Lazybones

In order to use this project's templates, you must first have lazybones installed. The easiest way to do this is with sdkman:

sdk install lazybones

You can also download the distribution package from BinTray, unzip it, and add it to your PATH.

Using the Multimodule Template

Once Lazybones is installed, you can run Lazybones passing in the correct template name:

lazybones create aem-multimodule-project <directory name>

For example, to create a new project in the directory my-project, run

lazybones create aem-multimodule-project my-project

This will prompt you to answer a number of questions about the project you want created.


Below are all of the options available in the current version. To specify an option on the command line, pass -P<parameter name>=<parameter value>

Description Default Parameter Name
Maven Group ID com.myco groupId
Maven Artifact ID example-project artifactId
Use New Module Naming Convention (core, ui.apps) yes useNewNamingConvention
Put Bundle in "bundles" sub-directory no bundleInBundlesDirectory
Bundle Artifact ID example-project-bundle/example-project.core bundleArtifactId
Content Package Artifact ID example-project-content/example-project.ui.apps contentArtifactId
Maven Version 0.0.1-SNAPSHOT version
Project Name My AEM Project projectName
Group name for Content Package my-packages packageGroup
Target AEM Version 6.3 aemVersion
Include a module to generate dispatcher configuration zip? no generateDispatcherArtifact
Dispatcher Artifact ID example-project.dispatcher dispatcherArtifactId
Folder to create under /apps my-aem-project appsFolderName
Folder to use under /content my-aem-project contentFolderName
Create AEM Editable Templates folders? yes createEditableTemplatesStructure
Folder to create under /conf my-aem-project confFolderName
Create a site design? no createDesign
Design folder name my-aem-project designFolderName
Create client libraries in /apps yes createClientLibsInApps
Create a main client library? yes createMainClientLib
Create a dependencies client library yes createDependenciesClientLib
Enable code quality checks? yes enableCodeQuality
Create Environment-Specific Config Folders? yes createRunModeConfigFolders
Environment Names localdev,dev,qa,stage,prod envNames
Create Author and Publish Config Folders per Environment? yes createAuthorAndPublishPerEnv
Include ACS AEM Commons? yes includeAcsAemCommons
Include ACS AEM Commons as a sub-package? yes includeAcsAemCommonsSubPackage
Include ACS AEM Commons 'min' package yes includeAcsAemCommonsMinPackage
Enable ACS AEM Commons Error Handler? yes enableErrorHandler
Default Error Page Path /content/my-aem-project/errors/404 defaultErrorPath
Define Error Page Folder for /content/my-aem-project ? no defineErrorPageFolder
Error Page Folder for /content/my-aem-project errors errorFolder
Enable ACS AEM Commons Pages Reference Provider? yes enablePagesReferenceProvider
Enable ACS AEM Commons Design Reference Provider? yes enableDesignReferenceProvider
Enable ACS AEM Commons Design Html Library Manager? yes enableDhlm
Enable ACS AEM Commons Versioned Client Libraries? yes enableVersionedClientLibs
Using Sling Models? yes usingSlingModels
Sling Models Package '' slingModelsPackage
Purge DAM Workflows? yes purgeDamWorkflows
DAM Workflow Retention Period (days) 7 purgeDamWorkflowRetention

Links to ACS AEM Commons Features

Several of the prompts ask if you want to enable specific ACS AEM Commons features. Links to the feature documentation can be found below:


During development, it is necessary to do a local installation of the lazybones template(s) and then test creation against the installed version. To do this:

  • From the root directory, run the command ./gradlew installAllTemplates
  • From a different directory, run the command lazybones create aem-multimodule-project <SNAPSHOT VERSION> <NEW DIRECTORY NAME>


To publish, you must have a file in the project root with this content:

bintrayUsername=<your bintray username>
bintrayApiKey=<your bintray API key>

Then, update the VERSION file for the template you want to publish to be a non-SNAPSHOT version and run

./gradlew publishTemplateMyTemplate

Replacing publishTemplateMyTemplate with a camel-cased version of your template name (e.g. publishTemplateAemMultimoduleProject)

After publishing, you'll need to log into bintray to release the published ZIP file.