Uso do Arquétipo de projeto do AEM using-the-archetype

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.

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

Introdução getting-started

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 how-to-use-the-archetype

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.

TIP
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 what-you-get

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 parent-pom

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 global-properties

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 module-structure

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 dependencies

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 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.

NOTE
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 core-components

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.

NOTE
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 testing

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
recommendation-more-help
d2be9096-a81e-404b-9952-d8925af7219c