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.
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.
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.1 | aemVersion |
Folder to create under /apps |
my-aem-project | appsFolderName |
Folder to use under /content |
my-aem-project | contentFolderName |
Create AEM 6.2 Editable Templates folders? | yes | createEditableTemplatesStructure |
Folder to create under /conf |
my-aem-project | confFolderName |
Create a site design? | yes | createDesign |
Design folder name | my-aem-project | designFolderName |
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 |
Set root mapping to /welcome (Classic UI)? |
yes in 5.6.1, no in 6.0 | reconfigureRootMapping |
Set Default Authoring UI to Classic? (6.0 only) | yes | enableClassicAuthoringAsDefault |
Include ACS AEM Commons? | yes | includeAcsAemCommons |
Include ACS AEM Commons as a sub-package? | yes | includeAcsAemCommonsSubPackage |
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 |
Several of the prompts ask if you want to enable specific ACS AEM Commons features. Links to the feature documentation can be found below:
- ACS AEM Commons Error Handler
- ACS AEM Commons Pages Reference Provider
- ACS AEM Commons Design Reference Provider
- ACS AEM Commons Design Html Library Manager
- ACS AEM Commons Versioned Clientlibs Rewriter
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>