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 arkitekturen, finns i Komma igång med AEM Sites - WKND självstudiekurs för ett praktiskt exempel 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 utveckling av SPA på AEM ska du ta en titt på WKND Events, självstudiekurs.
- Börja på egen hand! - Du kan enkelt ladda ned aktuell projekttyp tillgänglig på GitHub och skapa ditt första projekt själv.
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.
- kärna är ett Java-paket som innehåller alla kärnfunktioner som OSGi-tjänster, avlyssnare och schemaläggare, samt komponentrelaterad Java-kod som servrar och efterfrågningsfilter.
- it.tests är Java-baserade integreringstester.
- ui.apps innehåller
/apps
och/etc
delar av projektet, t.ex. JS- och CSS-klienter, komponenter och mallar. - ui.content innehåller exempelinnehåll med hjälp av komponenterna från modulen ui.apps.
- ui.config innehåller runmode-specifika 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 arraytypen för att skapa ett SPA baserat på Angular (valfritt, beror på byggparametrar).
- ui.tests innehåller selenbaserade UI-tester.
- alla ä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 konfigurationer för AMS/på-plats-projekt (valfritt, beror på build-parametrar).
- dispatcher.cloud innehåller grundläggande konfigurationer 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
The pom.xml
i projektets rot (<src-directory>/<project>/pom.xml
) kallas överordnad POM och driver projektets struktur samt hanterar beroenden och vissa globala egenskaper för projektet.
Egenskaper för globala projekt global-properties
The <properties>
i den överordnade POM-strukturen definieras 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. Standardvärdet admin:admin
autentiseringsuppgifter 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, utan 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
The <modules>
i överordnad POM definieras de moduler som projektet ska bygga. Som standard byggs projektet de standardmoduler som tidigare definierats. Fler moduler kan alltid läggas till när ett projekt utvecklas.
Beroenden dependencies
The <dependencyManagement>
i överordnad POM definieras 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 AEM Java API Jar. Detta inkluderar alla AEM API:er med bara en enda beroendepost för AEM.
X
är det senaste Service Pack-paketet.Kärnkomponenter core-components
Arketypen utnyttjar förstås Kärnkomponenter. För att kunna utnyttja kärnkomponenterna i alla installationer är det därför en god vana att inkludera dem i Maven-projektet.
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 - Selenbaserade test på webbläsarsidan som kontrollerar webbläsarsidans beteende