Uso do Arquétipo de projeto do AEM

Última atualização em 2024-02-13
  • Criado para:
  • Developer
    Admin

Este documento explica como é possível usar o Arquétipo de projeto do AEM para criar um projeto mínimo do Adobe Experience Manager com base em práticas recomendadas como ponto de partida para seus próprios projetos AEM.

Ele se concentra nos padrões de uso geral e no que o arquétipo faz por você. Para obter opções de criação detalhadas e instruções técnicas, consulte a documentação no repositório do GitHub do arquétipo.

DICA

O Arquétipo de projeto do AEM mais recente e a documentação técnica associada podem ser encontrados no GitHub.

Introdução

Com o arquétipo de projeto fica mais fácil começar a desenvolver no AEM. Você pode dar os primeiros passos com o arquétipo de várias maneiras.

Como usar o arquétipo

A primeira etapa para usar o arquétipo é criar um projeto, que gera os módulos em uma estrutura de arquivo local. Como parte da geração do projeto, diversas propriedades do seu projeto podem ser definidas, como nome do projeto, versão, habilitação de diversas opções, etc.

DICA

Sempre que você criar o arquétipo, ele também gerará uma série de arquivos Leia-me, fornecendo os detalhes técnicos e o uso de cada módulo como no link abaixo.

Desenvolver o projeto com o Maven cria os artefatos (pacotes e pacotes OSGi), que podem ser implantados no AEM. Comandos e perfis Maven adicionais podem ser usados para implantar os artefatos do projeto em uma instância do AEM.

O que você ganha usando o Arquétipo

O arquétipo é composto de módulos, todos criados automaticamente ao usar o arquétipo.

  • core é um pacote Java que contém todas as funcionalidades principais, como serviços OSGi, ouvintes e schedulers, bem como código Java relacionado a componentes, como servlets e filtros de solicitação.
  • it.tests são testes de integração baseados em Java.
  • ui.apps contém as partes /apps e /etc do projeto, ou seja, clientlibs CSS e JS, componentes e modelos.
  • ui.content contém conteúdo de amostra usando os componentes do módulo ui.apps.
  • ui.config contém configurações OSGi específicas do modo de execução para o projeto.
  • ui.frontend.general contém os artefatos necessários para usar o módulo geral de criação de front-end baseado em Webpack (opcional).
  • ui.frontend.react (opcional) contém os artefatos necessários ao usar o arquétipo para criar projetos de SPA baseados no React (opcional, depende da criação de parâmetros).
  • ui.frontend.angular (opcional) contém os artefatos necessários ao usar o arquétipo para criar projetos de SPA baseados no Angular (opcional, depende da criação de parâmetros).
  • ui.tests contém testes de interface baseados em Selenium.
  • all é um pacote de conteúdo único que incorpora todos os módulos compilados (pacotes e pacotes de conteúdo), incluindo todas as dependências de fornecedor.
  • dispatcher.ams contém as configurações básicas do dispatcher para projetos AMS/no local (opcional, depende dos parâmetros de criação).
  • dispatcher.cloud contém as configurações básicas do dispatcher para projetos AEMaaCS (opcional, depende dos parâmetros de criação).

Organização do pacote de conteúdo

Os módulos do arquétipo representado no Maven são implantados no AEM como pacotes de conteúdo que representam o aplicativo, o conteúdo e os pacotes OSGi necessários.

POM principal

O pom.xml na raiz do projeto (<src-directory>/<project>/pom.xml) é conhecido como POM principal e direciona a estrutura do projeto, bem como gerencia dependências e determinadas propriedades globais do projeto.

Propriedades globais do projeto

A seção <properties> do POM principal define várias propriedades globais são importantes para a implantação do seu projeto em uma instância do AEM, como nome de usuário/senha, nome/porta do host etc.

Essas propriedades são configuradas para implantar em uma instância do AEM local, pois essa é a build mais comum que os desenvolvedores farão. Observe que há propriedades para implantar em uma instância de autor, bem como uma instância de publicação. Também é aqui que as credenciais são definidas para autenticação com a instância do AEM. As credenciais admin:admin padrão são usadas.

Essas propriedades são configuradas para que possam ser substituídas ao implantar em ambientes de nível superior. Dessa forma, os arquivos POM não precisam ser alterados, mas variáveis como aem.host e sling.password podem ser substituídas por argumentos de linha de comando:

mvn -PautoInstallPackage clean install -Daem.host=production.hostname -Dsling.password=productionpasswd

Estrutura do módulo

A seção <modules> do POM principal define os módulos que o projeto criará. Por padrão, o projeto cria os módulos padrão definidos anteriormente.Mais módulos sempre podem ser adicionados à medida que o projeto evolui.

Dependências

A seção <dependencyManagement> do POM principal todas as dependências e versões das APIs usadas no projeto. As versões devem ser gerenciadas no POM principal. Os submódulos não devem incluir informações de versão.

Uber-Jar

Uma das dependências principais é o Jar da API Java do AEM. Ela incluirá todas as APIs do AEM com apenas uma única entrada de dependência para a versão do AEM.

OBSERVAÇÃO

Como prática recomendada, atualize a versão uber-jar para corresponder à versão de destino do AEM. Por exemplo, se você planeja implantar no AEM 6.5, é necessário atualizar a versão do uber-jar para 6.5.X, em que o X é o pacote de serviços mais recente.

Componentes principais

Claro que o arquétipo aproveita os Componentes principais. Portanto, para aproveitar os Componentes principais em todas as implantações, a prática recomendada é incluí-los como parte do projeto Maven.

O core.wcm.components.examples é um conjunto de páginas de exemplo que ilustra exemplos dos Componentes principais. Como prática recomendada, ao implantar um projeto para uso de produção, você deve remover essa dependência e a inclusão do subpacote.

OBSERVAÇÃO

Os Componentes principais e o arquétipo são mantidos como projetos do GitHub separados e, como tal, suas versões são diferentes.

Cada versão do arquétipo utilizará a versão mais recente dos Componentes principais disponíveis no momento do lançamento. No entanto, talvez seja melhor atualizar a dependência nos Componentes principais manualmente.

Testes

Existem três níveis de testes contidos no projeto e, como são diferentes tipos de testes, são executados de maneiras diferentes ou em lugares diferentes.

  • Testes de unidade: teste de unidade clássica do código contido no pacote
  • Testes de integração: testes de integração no lado do servidor que executam testes semelhantes a unidades no ambiente do AEM, ou seja, no servidor do AEM
  • Testes de interface: testes do lado do navegador baseados em Selenium que verificam o comportamento do lado do navegador

Nesta página