Home β€Ί Backend Development β€Ί Project structure (Maven archetype)

Project structure (Maven archetype)

Purpose: Understand each module the AEM project archetype generates and what belongs where.

Who this page is for

AudienceWhy it matters to you
All engineersEveryone navigates this tree daily

The modules

phi-academy/
 β”œβ”€β”€ core/          Java: models, servlets, services  β†’ OSGi bundle
 β”œβ”€β”€ ui.apps/       /apps content: components, HTL, dialogs, clientlib defs
 β”œβ”€β”€ ui.content/    Sample/seed content (/content, /conf)
 β”œβ”€β”€ ui.config/     OSGi configs per run mode
 β”œβ”€β”€ ui.frontend/   Webpack/TS frontend build β†’ generated clientlib
 β”œβ”€β”€ all/           Aggregate "single package" for deployment
 β”œβ”€β”€ dispatcher/    Dispatcher configuration
 └── it.tests/      Integration tests (against a running instance)
QuestionAnswer
Where does a new component go?ui.apps (structure) + core (model) + ui.frontend (styles)
Where do OSGi configs go?ui.config under config.<runmode> folders
What actually deploys?the all package embeds everything: mvn clean install -PautoInstallSinglePackage
Where does seed content belong?ui.content β€” but production content is authored, never deployed

Package boundaries worth respecting

Filevault mapping

ui.apps mirrors the repo: src/main/content/jcr_root/apps/phi-academy/... β€” folders and .content.xml files map 1:1 to nodes. The filter.xml declares which paths the package owns (and will replace on install).

Quick navigation