AEM project structure

Explore the best practices for structuring an AEM Maven project for AEM as a Cloud Service.

[Abhishek Dwevedi] Hello and welcome everyone. My name is Abhishek Dwevedi, and in this video we are going to learn about Project Structure of AEM as a cloud service project. After completing this video, you should be able to explain project structure of AEM as a cloud service project, and you should also be able to describe purpose of each folder in that AEM project. In the last video, we have already created a project using Maven Archetype. Let’s open that folder and inspect each and every folder. The first folder we have is all folder. This represents all package. All package is a container package that only includes the UI dot apps and UI dot content packages and bits. The all package must not have any content of its own, but rather delegate all deployments to the repository, through its sub-packages. The next folder we have is core. This represents core package and all the code inside this will create bundle dot jar file.
The next two folders, we can skip them for now, IT dot launcher and IT dot tests, because they contain tests and some launchers. Which has been very similar to the previous Maven archetypes. The next folder here we have is a repository structure. We’ll talk about this folder in more detail in next video. The remaining two folders are very important. The first folder is UI dot apps folder. This represents UI dot apps package, or also called as code package. It contains all the code to be deployed to slash apps folder.
UI dot apps package can include OSGi bundles, OSGi configurations, HTL scripts, HTL permissions, et cetera.
The remaining folder we have is UI dot content.
This represents UI dot content package, or also called as content package. This contains all the content and configuration.
UI dot content package can include elements like context of your configurations in slash con folder, baseline content structure in slash content folder for site pages and assets, service users or user groups, or it can also contain OAK indexes and ETC legacy code. Notice also, understand how this deployment happens. So, the first stack that you see, we have all the project-generated folders. Core, UI apps, UI content, and all. Core folder is responsible for creating bundle dot jar, UI dot apps, and under it UI dot apps dot zip. This internally contains bundle.jar file, and also the configurations of code for slash apps.
The next package we have is UI dot content dot zip. This contains all the contents. Like anything under slash content, or slash home, or slash configuration, et cetera. In the last phase of building, UI dot apps dot zip and UI dot content dot zip gets into one folder. That is called as all dot zip. And this is part of that all folder that we have discussed previously. Once you have all dot zip available, this goes to Adobe Cloud Manager, which, in turns, is deployed to AEM. Now, you should be able to explain project structure of AEM project, and you should also be able to describe purpose of each folder in AEM project.
Thank you for watching this video. Have a great day. -