Använda den AEM projekttypen using-the-archetype
I det här dokumentet beskrivs hur du kan använda den AEM projektarkitekturen för att skapa ett minimalt, metodbaserat Adobe Experience Manager-projekt som utgångspunkt för dina egna AEM.
Det fokuserar på allmänna användningsmönster och vad arkitypen gör för dig. Detaljerade byggalternativ och tekniska anvisningar finns i dokumentationen i arkivtypens GitHub-databas.
Komma igång getting-started
Projektets arkityp gör det enkelt att komma igång med AEM. Du kan utföra de första stegen med arkitypen på flera olika sätt.
- WKND-självstudiekurs - En bra introduktion till hur du utvecklar AEM, inklusive hur du utnyttjar arkivtypen, finns i Komma igång med AEM Sites - WKND-självstudiekurs som visar hur du använder arkitypen för att implementera ett enkelt projekt.
- Självstudiekurs om WKND-händelser - Om du är särskilt intresserad av att utveckla ett program (SPA) för en enda sida på AEM ska du titta på den dedikerade självstudiekursen WKND Events.
- Börja på egen hand! - Du kan enkelt hämta den aktuella projekttypen som finns på GitHub och skapa ditt första projekt på egen hand.
Använda arkitekturen how-to-use-the-archetype
Det första steget med att använda arkitypen är att skapa ett projekt som genererar modulerna i en lokal filstruktur. Som en del av projektgenereringen kan du definiera ett antal egenskaper för ditt projekt, till exempel projektnamn, version, och aktivera olika alternativ.
Genom att bygga projektet med Maven skapas artefakter (paket och OSGi-paket) som kan distribueras till AEM. Ytterligare Maven-kommandon och profiler kan användas för att distribuera projektartefakter till en AEM instans.
Vad du får med arkitekturen what-you-get
Arkitypen består av moduler, som alla skapas automatiskt när du använder typen architype.
- core är ett Java-paket som innehåller alla kärnfunktioner som OSGi-tjänster, avlyssnare och schemaläggare, liksom komponentrelaterad Java-kod som servrar och begärandefilter.
- it.tests är Java-baserade integreringstester.
- ui.apps innehåller
/apps
och/etc
delar av projektet, dvs. JS- och CSS-klienter, komponenter och mallar. - ui.content innehåller exempelinnehåll med komponenterna från modulen ui.apps.
- ui.config innehåller körlägesspecifika OSGi-konfigurationer för projektet.
- ui.front.general innehåller de artefakter som krävs för att använda den allmänna Webpack-baserade frontendmodulen (valfritt).
- ui.front.response (valfritt) innehåller de artefakter som krävs när du använder arkivtypen för att skapa ett SPA som baseras på React (valfritt, beror på build-parametrar).
- ui.front.angular (valfritt) innehåller de artefakter som krävs när du använder arkivtypen för att skapa ett SPA projekt baserat på Angular (valfritt, beror på build-parametrar).
- ui.tests innehåller selenbaserade UI-tester.
- all är ett enda innehållspaket som bäddar in alla kompilerade moduler (paket och innehållspaket) inklusive eventuella leverantörsberoenden.
- dispatcher.ams innehåller grundläggande dispatcherkonfigurationer för AMS-/on-prem-projekt (valfritt, beror på build-parametrar).
- dispatcher.cloud innehåller grundläggande dispatcherkonfigurationer för AEMaaCS-projekt (valfritt, beror på build-parametrar).
Modulerna för den arkityp som representeras i Maven distribueras till AEM som innehållspaket som representerar programmet, innehållet och nödvändiga OSGi-paket.
Överordnad POM parent-pom
pom.xml
i projektets rot (<src-directory>/<project>/pom.xml
) kallas för överordnad POM och driver projektets struktur samt hanterar beroenden och vissa globala egenskaper för projektet.
Egenskaper för globala projekt global-properties
Avsnittet <properties>
i den överordnade POM definierar flera globala egenskaper som är viktiga för distributionen av ditt projekt på en AEM instans som användarnamn/lösenord, värdnamn/port osv.
Dessa egenskaper är konfigurerade för att distribueras till en lokal AEM, eftersom detta är den vanligaste versionen som utvecklare kommer att göra. Observera att det finns egenskaper att distribuera till en författarinstans samt en publiceringsinstans. Det är också här som inloggningsuppgifterna ställs in för att autentiseras med AEM. Standardautentiseringsuppgifterna för admin:admin
används.
Dessa egenskaper är konfigurerade så att de kan åsidosättas vid distribution till miljöer på högre nivå. På så sätt behöver inte POM-filerna ändras, men variabler som aem.host
och sling.password
kan åsidosättas via kommandoradsargument:
mvn -PautoInstallPackage clean install -Daem.host=production.hostname -Dsling.password=productionpasswd
Modulstruktur module-structure
Avsnittet <modules>
i den överordnade POM definierar modulerna som projektet ska bygga. Som standard skapar projektet de standardmoduler som tidigare definierats. Fler moduler kan alltid läggas till när ett projekt utvecklas.
Beroenden dependencies
Avsnittet <dependencyManagement>
i den överordnade POM definierar alla beroenden och versioner av API:er som används i projektet. Versioner ska hanteras i den överordnade POM. Undermoduler bör inte innehålla någon versionsinformation.
Uber-Jar uber-jar
Ett av nyckelberoendena är Java API Jar för AEM. Detta inkluderar alla AEM API:er med endast en beroendepost för AEM.
X
är den senaste Service Pack-versionen.Kärnkomponenter core-components
Arkitypen utnyttjar förstås kärnkomponenterna. Därför är det bäst att inkludera dem som en del av Maven-projektet för att kunna utnyttja kärnkomponenterna i alla distributioner.
core.wcm.components.examples är en uppsättning exempelsidor som illustrerar exempel på kärnkomponenterna. Ett tips är att när du distribuerar ett projekt för produktion bör du ta bort beroendet och delpaketinkluderingen.
Testning testing
Det finns tre testnivåer i projektet och eftersom de är olika typer av tester utförs de på olika sätt eller på olika platser.
- Enhetstester - Klassisk enhetstestning av koden i paketet
- Integrationstester - Integrationstester på serversidan som kör enhetsliknande tester i AEM-miljön, dvs. på den AEM servern
- UI-tester - Seleniumbaserade webbläsarbaserade tester som verifierar beteendet på webbläsarsidan