Een lokale AEM ontwikkelomgeving instellen

Handleiding voor het opzetten van een lokale ontwikkeling voor Adobe Experience Manager, AEM. Omvat belangrijke onderwerpen van lokale installatie, Apache Maven, geïntegreerde ontwikkelomgevingen en het zuiveren/het oplossen van problemen. Ontwikkeling met Eclipse winde, CRXDE Lite, de Code van Visual Studio, en IntelliJ worden besproken.

Overzicht

Het opzetten van een lokale ontwikkelomgeving is de eerste stap bij het ontwikkelen voor Adobe Experience Manager of AEM. Neem de tijd om een ontwikkelomgeving voor kwaliteit in te stellen om uw productiviteit te verhogen en betere code te schrijven, sneller. We kunnen een AEM lokale ontwikkelingsomgeving in vier gebieden verdelen:

  • Lokale AEM
  • Apache Maven project
  • Geïntegreerde ontwikkelomgevingen (IDE)
  • Problemen oplossen

Lokale AEM installeren

Wanneer we naar een lokale AEM verwijzen, hebben we het over een kopie van Adobe Experience Manager die op de persoonlijke machine van een ontwikkelaar draait. Alles AEM ontwikkeling moet beginnen door code te schrijven en uit te voeren tegen een lokale AEM.

Als u nog geen ervaring hebt met AEM, kunt u twee standaardmodi installeren: Auteur en Publiceren. De Auteur runmode Dit is de omgeving die digitale marketers gebruiken om inhoud te maken en te beheren. Wanneer het ontwikkelen van het grootste deel van de tijd, stelt u code aan een instantie van de Auteur op. Zo kunt u pagina's maken en componenten toevoegen en configureren. AEM Sites is een WYSIWYG-ontwerpend CMS en daarom kunnen de meeste CSS en JavaScript worden getest op basis van een ontwerpinstantie.

Het is ook kritisch testcode tegen een lokale Publiceren -instantie. De Publiceren instantie is de AEM omgeving waarmee bezoekers van uw website communiceren. Terwijl de Publiceren instantie is dezelfde technologiestapel als de Auteur instantie, zijn er één of ander belangrijk onderscheid met configuraties en toestemmingen. De code moet worden getest op basis van een lokale Publiceren -instantie voordat deze wordt bevorderd tot omgevingen op een hoger niveau.

Stappen

  1. Zorg ervoor dat Java™ is geïnstalleerd.

    • Voorkeur [Java™ JDK 11](https://experience.adobe.com/#/downloads/content/software-distribution/en/general.html?1_group.propertyvalues.property=.%2Fjcr%3Acontent%2Fmetadata%2Fdc%3AsoftwareType&1_group.propertyvalues.operation=equals&1_group.propertyvalues.0_values=software-type%3Atooling&orderby=%40jcr%3Acontent%2Fjcr%3AlastModified&orderby.sort=desc&layout=list p.offset=0&p.limit=14) voor AEM 6.5+
    • Java™ JDK 8 voor AEM versies vóór AEM 6.5
  2. Hiermee wordt een kopie van het dialoogvenster AEM QuickStart Jar en a license.properties.

  3. Maak als volgt een mapstructuur op uw computer:

~/aem-sdk
    /author
    /publish
  1. De naam van de QuickStart JAR naar aem-auteur-p4502.jar en plaatst deze onder de /author directory. Voeg de license.properties bestand onder het /author directory.

  2. Maak een kopie van het dialoogvenster QuickStart JAR, naam wijzigen in aem-publish-p4503.jar en plaatst deze onder de /publish directory. Een kopie van het dialoogvenster toevoegen license.properties bestand onder het /publish directory.

~/aem-sdk
    /author
        + aem-author-p4502.jar
        + license.properties
    /publish
        + aem-publish-p4503.jar
        + license.properties
  1. Dubbelklik op de knop aem-auteur-p4502.jar te installeren Auteur -instantie. Hiermee wordt de auteurinstantie gestart, die op de poort wordt uitgevoerd 4502 op de lokale computer.

Dubbelklik op de knop aem-publish-p4503.jar te installeren Publiceren -instantie. Hiermee wordt de instantie Publiceren gestart en wordt de poort uitgevoerd 4503 op de lokale computer.

NOTE
Afhankelijk van de hardware van uw ontwikkelcomputer kan het moeilijk zijn om zowel een Auteur en publicatie -instantie die tegelijkertijd wordt uitgevoerd. Zelden moet u allebei gelijktijdig op een lokale opstelling in werking stellen.

Opdrachtregel gebruiken

U kunt ook dubbelklikken op het JAR-bestand door AEM te starten vanaf de opdrachtregel of een script te maken (.bat of .sh), afhankelijk van de smaak van uw lokale besturingssysteem. Hieronder ziet u een voorbeeld van de voorbeeldopdracht:

$ java -Xmx2048M -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=30303 -jar aem-author-p4502.jar -gui -r"author,localdev"

Hier, -X zijn JVM-opties en -D zijn aanvullende frameworkeigenschappen, zie voor meer informatie Een AEM-instantie implementeren en onderhouden en Meer opties beschikbaar in het QuickStart-bestand.

Apache Maven installeren

Apache Maven is een hulpmiddel om de bouwstijl te beheren en procedure voor op Java-Gebaseerde projecten op te stellen. AEM is een Java-platform en Maven is de standaardmanier om code voor een AEM project te beheren. Wanneer we zeggen AEM Maven Project of alleen uw AEM project, verwijzen wij naar een project van Maven dat alle aangepast code voor uw site.

Alle AEM projecten moeten worden opgebouwd uit de meest recente versie van de AEM Project Archetype: https://github.com/adobe/aem-project-archetype. De AEM Project Archetype voorziet een laarzentrekker van een AEM project van één of andere steekproefcode en inhoud. De AEM Project Archetype omvat ook AEM WCM Core Components geconfigureerd voor gebruik op uw project.

CAUTION
Wanneer het beginnen van een nieuw project, is het beste praktijken om de recentste versie van archetype te gebruiken. Houd in mening dat er veelvoudige versies van archetype zijn en niet alle versies compatibel met vroegere versies van AEM.

Stappen

  1. Downloaden Apache Maven
  2. Installeren Apache Maven en zorg ervoor dat de installatie aan uw bevellijn is toegevoegd PATH.
    • macOS gebruikers kunnen Maven installeren met Homebrew
  3. Controleren of Maven wordt geïnstalleerd door een nieuwe bevel-lijn terminal te openen en het volgende uit te voeren:
$ mvn --version
Apache Maven 3.3.9
Maven home: /Library/apache-maven-3.3.9
Java version: 1.8.0_111, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
NOTE
In het verleden adobe-public Gemaakt profiel is vereist voor punt nexus.adobe.com om AEM artefacten te downloaden. Alle AEM artefacten zijn nu beschikbaar via Maven Central en de adobe-public is niet nodig.

Een geïntegreerde ontwikkelomgeving instellen

Een geïntegreerde ontwikkelomgeving of IDE is een toepassing waarin een teksteditor, syntaxisondersteuning en build-tools worden gecombineerd. Afhankelijk van het type van ontwikkeling u doet, zou één winde boven een andere kunnen verkiezen. Ongeacht IDE is het belangrijk om periodiek duwen code naar een lokale AEM-instantie om deze te testen. Het is belangrijk om af en toe trekken configuraties van een lokale AEM instantie in uw AEM project om aan een bron-controle beheerssysteem zoals Git voort te zetten.

Hieronder staan een paar populairdere IDEs die met AEM ontwikkeling met overeenkomstige video's worden gebruikt die de integratie met een lokale AEM instantie tonen.

NOTE
Het WKND-project is standaard bijgewerkt om aan AEM as a Cloud Service te werken. Het is bijgewerkt om achterwaarts compatibel met 6.5/6.4. Indien u AEM 6.5 of 6.4 gebruikt, voegt u de classic aan om het even welke Gemaakt bevelen.
$ mvn clean install -PautoInstallSinglePackage -Pclassic

Wanneer, die een winde gebruiken gelieve te controleren classic op het tabblad Geweven profiel.

Tabblad Geweven profiel

IntelliJ Maven Profile

Eclipse IDE

De Eclipse IDE is een van de populairste IDE's voor Java™-ontwikkeling, grotendeels omdat het een open-source is en vrij! Adobe biedt een insteekmodule, AEM Developer Tools, for Eclipse om gemakkelijker ontwikkeling met een aardige GUI toe te staan om code met een lokale AEM instantie te synchroniseren. De Eclipse IDE wordt geadviseerd voor ontwikkelaars nieuw om grotendeels te AEM wegens GUI steun door AEM Developer Tools.

Installatie en installatie

  1. Download en installeer de Eclipse IDE voor Java™ EE Developers: https://www.eclipse.org
  2. Volg de instructies om de AEM Developer Tools insteekmodule: https://experienceleague.adobe.com/docs/experience-manager-65/developing/devtools/aem-eclipse.html?lang=nl-NL
  • 00:30 - Geweven project importeren
  • 01:24 - Bouw en stel broncode met Maven op
  • 04:33 - Pushcodewijzigingen met AEM Developer Tool
  • 10:55 - Draai codewijzigingen door AEM Developer Tool
  • 13:12 - De geïntegreerde foutopsporingsgereedschappen van Eclipse gebruiken

IntelliJ IDEA

De IntelliJ IDEA is een krachtige IDE voor professionele ontwikkeling van Java™. IntelliJ IDEA komt voor in twee kleveringen, a vrij Community editie en een handelsversie (betaald) Ultimate versie. De gratis Community versie van IntellIJ IDEA is voldoende voor meer AEM ontwikkeling, maar Ultimate breidt zijn vermogensreeks uit.

Installation and Setup

  1. Download en installeer de IntelliJ IDEA: https://www.jetbrains.com/idea/download
  2. Installeren Repo (opdrachtregelprogramma): https://github.com/Adobe-Marketing-Cloud/tools/tree/master/repo
  • 00:00 - Maven-project importeren
  • 05:47 - Bouw en stel broncode met Maven op
  • 08:17 - Push changes with Repo
  • 14:39 - Pull changes with Repo
  • 17:25 - Het gebruiken van de geïntegreerde het zuiveren hulpmiddelen van IntelliJ IDEA

Visual Studio Code

Visual Studio-code is al snel een favoriete tool geworden voor front-end ontwikkelaars met verbeterde JavaScript-ondersteuning, Intellisenseen ondersteuning voor browserfoutopsporing. Visual Studio Code is opensource, gratis, met veel krachtige extensies. Visual Studio Code kan worden opgezet om met AEM te integreren met behulp van een instrument voor Adobe, repo. Er zijn ook verschillende door de gemeenschap ondersteunde extensies die kunnen worden geïnstalleerd om met AEM te integreren.

Visual Studio Code is een goede keuze voor front-end ontwikkelaars die vooral CSS/LESS en JavaScript-code schrijven om AEM clientbibliotheken te maken. Dit hulpmiddel kan niet de beste keus voor nieuwe AEM ontwikkelaars zijn aangezien de knoopdefinities (dialogen, componenten) in ruwe XML moeten worden uitgegeven. Er zijn verschillende Java™-extensies beschikbaar voor Visual Studio Codeechter, als het vooral gaat om het ontwikkelen van Java™ Eclipse IDE of IntelliJ kan de voorkeur verdienen.

Belangrijke koppelingen

  • Downloaden Visual Studio-code
  • repo - FTP-achtig gereedschap voor JCR-inhoud
  • geaëerd - Verhoog uw AEM front-end workflow
  • Synchroniseren - Door de Gemeenschap ondersteund* uitbreiding voor de Code van Visual Studio
  • 00:30 - Geweven project importeren
  • 00:53 - bouw en stel broncode met Maven op
  • 04:03 - Push code changes with Repo command-line tool
  • 08:29 - Pull code changes with Repo command-line tool
  • 10:40 - Push code changes with aemfed tool
  • 14:24 - Problemen oplossen, Clientbibliotheken opnieuw samenstellen

CRXDE Lite

CRXDE Lite is een browserweergave van de AEM repository. CRXDE Lite is ingesloten in AEM en stelt een ontwikkelaar in staat standaardontwikkelingstaken uit te voeren, zoals het bewerken van bestanden, het definiëren van componenten, dialoogvensters en sjablonen. CRXDE Lite is niet bedoeld om een volledige ontwikkelomgeving te zijn, maar doeltreffend als foutopsporingsprogramma. CRXDE Lite is nuttig wanneer het uitbreiden van of eenvoudig begrip van productcode buiten uw codebasis. CRXDE Lite biedt een krachtige weergave van de opslagplaats en een manier om machtigingen effectief te testen en te beheren.

CRXDE Lite zou met andere IDEs moeten worden gebruikt om code te testen en te zuiveren maar nooit als primair ontwikkelingshulpmiddel. Er is beperkte syntaxisondersteuning, geen automatische functionaliteit en beperkte integratie met bronbeheersystemen.

Problemen oplossen

Help! Mijn code werkt niet! Net als bij alle ontwikkelingen zijn er tijden (waarschijnlijk veel) waarin uw code niet naar behoren werkt. AEM is een krachtig platform, maar met grote kracht… komt er grote complexiteit. Hieronder vindt u een aantal uitgangspunten op hoog niveau voor het oplossen van problemen en het opsporen van problemen (maar ver van een volledige lijst met dingen die fout kunnen gaan):

Codeimplementatie verifiëren

Een goede eerste stap, wanneer het ontmoeten van een kwestie moet verifiëren dat de code met succes aan AEM is opgesteld en geïnstalleerd.

  1. ControlerenPackage Manager om ervoor te zorgen dat het codepakket is geüpload en geïnstalleerd: http://localhost:4502/crx/packmgr/index.jsp. Controleer de tijdstempel om te controleren of het pakket onlangs is geïnstalleerd.
  2. Als u incrementele bestandsupdates uitvoert met een gereedschap als Repo of AEM Developer Tools, controlerenCRXDE Lite of het bestand naar de lokale AEM-instantie is geduwd en of de bestandsinhoud wordt bijgewerkt: http://localhost:4502/crx/de/index.jsp
  3. Controleren of de bundel is geüpload als u problemen met Java™-code ziet in een OSGi-bundel. Open de Adobe Experience Manager Web Console: http://localhost:4502/system/console/bundles en zoek naar uw bundel. Zorg ervoor dat de bundel een Active status. Zie hieronder voor meer informatie over het oplossen van problemen met een bundel in een Installed status.

Logbestanden controleren

AEM is een chatplatform en registreert nuttige informatie in het error.log. De error.log kan worden gevonden op de plaats waar AEM is geïnstalleerd: < aem-installation-folder>/crx-quickstart/logs/error.log.

Een handige techniek voor het bijhouden van problemen is het toevoegen van loginstructies in uw Java™-code:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
...

public class MyClass {
    private final Logger log = LoggerFactory.getLogger(getClass());

    ...

    String myVariable = "My Variable";

    log.debug("Debug statement of myVariable {}", myVariable);

    log.info("Info statement of myVariable {}", myVariable);
}

Standaard worden de error.log is gevormd aan logboek INFO instructies. Als u het logboekniveau wilt veranderen, kunt u dit doen door te gaan Log Support: http://localhost:4502/system/console/slinglog. U kunt ook vaststellen dat de error.log is te chagrijnig. U kunt de Log Support om logboekverklaringen voor enkel een gespecificeerd pakket Java™ te vormen. Dit is een beste praktijk voor projecten, om de kwesties van de douanecode van OTB AEM platformkwesties gemakkelijk van elkaar te scheiden.

Logconfiguratie in AEM

Bundel bevindt zich in de status Geïnstalleerd bundle-active

Alle bundels (met uitzondering van fragmenten) moeten zich in een Active status. Als u de codebundel in een Installed staat , dan is er een probleem dat moet worden opgelost . Meestal is dit een afhankelijkheidskwestie:

Bundelfout in AEM

In de bovenstaande schermafbeelding WKND Core bundle is een Installed status. Dit komt omdat de bundel een andere versie van com.adobe.cq.wcm.core.components.models dan beschikbaar is op de AEM.

Een handig gereedschap dat u kunt gebruiken is de Dependency Finder: http://localhost:4502/system/console/depfinder. Voeg de naam van het Java™-pakket toe om te controleren welke versie beschikbaar is op het AEM:

Kernonderdelen

Als u doorgaat met het bovenstaande voorbeeld, kunt u zien dat de versie die op de AEM is geïnstalleerd, 12,2 vs 12,6 dat de bundel had verwacht. Daar kun je achterwaarts werken en zien of de Maven afhankelijkheid van AEM komt overeen met Maven afhankelijkheden in het AEM project. In, het bovenstaande voorbeeld Core Components v2.2.0 is geïnstalleerd op de AEM instantie maar de codebundel is gebouwd met een afhankelijkheid van v2.2.2, vandaar de reden voor het probleem van de afhankelijkheid.

Registratie van verkoopmodellen verifiëren osgi-component-sling-models

AEM componenten moeten worden ondersteund door een Sling Model om bedrijfslogica in te kapselen en ervoor te zorgen dat het HTML teruggevende manuscript schoon blijft. Als er problemen optreden waarbij het verkoopmodel niet kan worden gevonden, is het wellicht handig om de Sling Models vanaf de console: http://localhost:4502/system/console/status-slingmodels. Dit vertelt u als uw het Verkopen Model is geregistreerd en welk middeltype (de componentenweg) het aan verbonden is.

Status van verkoopmodel

Hiermee wordt de registratie van een Sling Model, BylineImpl dat is gekoppeld aan een type componentbron van wknd/components/content/byline.

CSS- of JavaScript-problemen

Voor de meeste problemen met CSS en JavaScript is het gebruik van de ontwikkelingstools van de browser de meest effectieve manier om problemen op te lossen. Als u het probleem wilt beperken bij het ontwikkelen tegen een AEM instantie van de auteur, is het handig om de pagina "zoals gepubliceerd" weer te geven.

Problemen met CSS of JS

Open de Page Properties menu en klik op View as Published. Hierdoor wordt de pagina geopend zonder de AEM Editor en met een queryparameter ingesteld op wcmmode=disabled. Dit maakt effectief de AEM auteursUI onbruikbaar en maakt het oplossen van problemen/het zuiveren front-end kwesties veel gemakkelijker.

Een ander vaak ondervonden probleem bij het ontwikkelen van front-end code is oud of verouderd CSS/JS wordt geladen. Als eerste stap moet u ervoor zorgen dat de browsergeschiedenis is gewist en zo nodig een incognitobrowser of een nieuwe sessie starten.

Fouten opsporen in clientbibliotheken

Met de verschillende methodes van categorieën en bedden om veelvoudige cliëntbibliotheken te omvatten kan het lastig zijn om problemen op te lossen. AEM stelt verschillende hulpmiddelen beschikbaar om hierbij te helpen. Een van de belangrijkste instrumenten is Rebuild Client Libraries die AEM dwingen om eventuele LESS-bestanden opnieuw te compileren en de CSS te genereren.

  • Reliëfstructuren - Hiermee worden alle clientbibliotheken weergegeven die in de AEM zijn geregistreerd. <host>/libs/granite/ui/content/dumplibs.html
  • Uitvoer testen - stelt een gebruiker in staat de verwachte HTML-uitvoer van clientlib te zien op basis van categorie. <host>/libs/granite/ui/content/dumplibs.test
  • Validatie van bibliotheekafhankelijke onderdelen - Hiermee worden afhankelijkheden of ingesloten categorieën gemarkeerd die niet zijn gevonden. <host>/libs/granite/ui/content/dumplibs.validate
  • Client-bibliotheken opnieuw samenstellen - kan een gebruiker de AEM dwingen alle clientbibliotheken opnieuw samen te stellen of de cache van clientbibliotheken ongeldig te maken. Dit gereedschap is effectief bij het ontwikkelen met LESS, omdat dit AEM ertoe kan dwingen de gegenereerde CSS opnieuw te compileren. Over het algemeen is het effectiever om de cache ongeldig te maken en vervolgens een pagina te vernieuwen in plaats van alle bibliotheken opnieuw samen te stellen. <host>/libs/granite/ui/content/dumplibs.rebuild

Fouten opsporen in Clientlibs

NOTE
Als u constant het geheime voorgeheugen moet invalideren gebruikend Rebuild Client Libraries kan het de moeite waard zijn om alle clientbibliotheken een keer opnieuw op te bouwen. Dit kan ongeveer 15 minuten in beslag nemen, maar in de toekomst worden problemen met het in cache plaatsen meestal opgelost.
recommendation-more-help
c92bdb17-1e49-4e76-bcdd-89e4f85f45e6