Plug-in de Maven do Pacote de Conteúdo do Adobe

Use o plug-in Adobe Content Package Maven para integrar tarefas de implantação e gerenciamento de pacotes aos seus projetos Maven.

A implantação dos pacotes construídos no AEM é realizada pelo plug-in Adobe Content Package Maven e permite a automação de tarefas normalmente executadas usando AEM Gerenciador de Pacotes:

  • Crie novos pacotes a partir de arquivos no sistema de arquivos.
  • Instale e desinstale pacotes no AEM.
  • Crie pacotes que já estão definidos no AEM.
  • Obtenha uma lista de pacotes instalados no AEM.
  • Remova um pacote do AEM.

Este documento detalha como usar o Maven para gerenciar essas tarefas. No entanto, também é importante entender como AEM projetos e seus pacotes são estruturados.

OBSERVAÇÃO

A criação do pacote agora é de propriedade do Apache Jackrabbit FileVault Package Maven plugin. A implantação dos pacotes construídos no AEM é executada pelo plugin Adobe Content Package Maven, conforme descrito aqui.

Pacotes e a estrutura do projeto AEM

O AEM as a Cloud Service adere às práticas recomendadas mais recentes para o gerenciamento de pacotes e a estrutura do projeto, conforme implementado pelo AEM Project Archetype mais recente.

DICA

Para obter mais detalhes, consulte o artigo AEM Estrutura do Projeto na documentação do AEM como Cloud Service, bem como a documentação AEM Project Archetype. Ambos são totalmente compatíveis com o AEM 6.5.

Obter o plug-in do Maven do pacote de conteúdo

O plug-in está disponível no Repositório Central Maven.

Metas e parâmetros do plug-in do Maven para pacote de conteúdo

Para usar o plug-in Content Package Maven , adicione o seguinte elemento de plug-in dentro do elemento build do seu arquivo POM:

<plugin>
 <groupId>com.day.jcr.vault</groupId>
 <artifactId>content-package-maven-plugin</artifactId>
 <version>0.0.24</version>
 <configuration>
       <!-- parameters and values common to all goals, as required -->
 </configuration>
</plugin>

Para permitir que o Maven baixe o plug-in, use o perfil fornecido na seção Obtenção do plug-in do pacote de conteúdo nesta página.

Metas do plug-in Maven do pacote de conteúdo

As metas e os parâmetros de meta fornecidos pelo plug-in Pacote de conteúdo são descritos nas seções a seguir. Os parâmetros descritos na seção Parâmetros comuns podem ser usados para a maioria das metas. Os parâmetros que se aplicam a uma meta são descritos na seção para essa meta.

Prefixo do plug-in

O prefixo do plug-in é content-package. Use esse prefixo para executar uma meta da linha de comando, como no exemplo a seguir:

mvn content-package:build

Prefixo do parâmetro

A menos que observado, as metas e os parâmetros do plug-in usam o prefixo vault, como no exemplo a seguir:

mvn content-package:install -Dvault.targetURL="https://192.168.1.100:4502/crx/packmgr/service.jsp"

Proxies

Metas que usam proxies para AEM usam a primeira configuração de proxy válida encontrada nas configurações de Maven. Se nenhuma configuração de proxy for encontrada, nenhum proxy será usado. Consulte o parâmetro useProxy na seção Parâmetros Comuns.

Parâmetros comuns

Os parâmetros na tabela a seguir são comuns a todas as metas, exceto quando anotados na coluna Metas.

Nome Tipo Obrigatório Valor padrão Descrição Metas
failOnError boolean Não false Um valor true faz com que a build falhe quando ocorre um erro. Um valor false faz com que a build ignore o erro. Todas as metas exceto package
name String build: Sim, install: Não, rm: Sim build: Sem padrão, install: O valor da artifactId propriedade do projeto Maven O nome do pacote no qual agir Todas as metas exceto ls
password String Sim admin A senha usada para autenticação com AEM Todas as metas exceto package
serverId String Não A ID do servidor da qual recuperar o nome de usuário e a senha para autenticação Todas as metas exceto package
targetURL String Sim http://localhost:4502/crx/packmgr/service.jsp O URL da API do serviço HTTP do gerenciador de pacotes de AEM Todas as metas exceto package
timeout int Não 5 O tempo limite da conexão para comunicação com o serviço gerenciador de pacotes, em segundos Todas as metas exceto package
useProxy boolean Não true Um valor true faz com que o Maven use a primeira configuração de proxy ativa encontrada para que as solicitações de proxy sejam feitas no Gerenciador de Pacotes. Todas as metas exceto package
userId String Sim admin O nome de usuário com o qual autenticar AEM Todas as metas exceto package
verbose boolean Não false Ativa ou desativa o registro detalhado Todas as metas exceto package

build

Cria um pacote de conteúdo que já está definido em uma instância de AEM.

OBSERVAÇÃO

Essa meta não precisa ser executada em um projeto Maven.

Parâmetros

Todos os parâmetros para a meta de build são descritos na seção Parâmetros Comuns.

instalar

Instala um pacote no repositório. A execução dessa meta não requer um projeto Maven. A meta está vinculada à fase install do ciclo de vida da build do Maven.

Parâmetros

Além dos parâmetros a seguir, consulte as descrições na seção Parâmetros Comuns .

Nome Tipo Obrigatório Valor padrão Descrição
artifact String Não O valor da propriedade artifactId do projeto Maven Uma string do formulário groupId:artifactId:version[:packaging]
artifactId String Não Nenhum A ID do artefato a ser instalado
groupId String Não Nenhum O groupId do artefato a ser instalado
install boolean Não true Determina se o pacote deve ser descompactado automaticamente quando carregado
localRepository org.apache.maven.artifact.repository.ArtifactRepository Não O valor da variável do sistema localRepository O repositório Maven local que não pode ser configurado usando a configuração do plug-in, pois a propriedade do sistema é sempre usada
packageFile java.io.File Não O artefato principal definido para o projeto Maven O nome do arquivo de pacote a ser instalado
packaging String Não zip O tipo de empacotamento do artefato a ser instalado
pomRemoteRepositories java.util.List Sim O valor da propriedade remoteArtifactRepositories que é definida para o projeto Maven Esse valor não pode ser configurado usando a configuração do plug-in e deve ser especificado no projeto.
project org.apache.maven.project.MavenProject Sim O projeto para o qual o plug-in está configurado O projeto Maven que está implícito porque o projeto contém a configuração do plug-in
repositoryId (POM), repoID (linha de comando) String Não temp A ID do repositório do qual o artefato é recuperado
repositoryUrl (POM), repoURL (linha de comando) String Não Nenhum O URL do repositório do qual o artefato é recuperado
version Sequência de caracteres Não Nenhum A versão do artefato a ser instalada

ls

Lista os pacotes implantados no Gerenciador de Pacotes.

Parâmetros

Todos os parâmetros da meta de ls estão descritos na seção Parâmetros Comuns.

rm

Remove um pacote do Gerenciador de pacotes.

Parâmetros

Todos os parâmetros da meta de rm são descritos na seção Parâmetros Comuns.

desinstalar

Desinstala um pacote. O pacote permanece no servidor no estado desinstalado.

Parâmetros

Todos os parâmetros da meta de desinstalação estão descritos na seção Parâmetros Comuns.

pacote

Cria um pacote de conteúdo. A configuração padrão do objetivo do pacote inclui o conteúdo do diretório em que os arquivos compilados são salvos. A execução da meta do pacote requer que a fase de compilação tenha sido concluída. A meta do pacote é vinculada à fase do pacote do ciclo de vida da compilação Maven.

Parâmetros

Além dos parâmetros a seguir, consulte a descrição do parâmetro name na seção Parâmetros Comuns.

Nome Tipo Obrigatório Valor padrão Descrição
archive org.apache.maven.archiver.MavenArchiveConfiguration Não Nenhum A configuração de arquivamento a ser usada
builtContentDirectory java.io.File Sim O valor do diretório de saída da compilação Maven O diretório que contém o conteúdo a ser incluído no pacote
dependencies java.util.List Não Nenhum
embeddedTarget java.lang.String Não Nenhum
embeddeds java.util.List Não Nenhum
failOnMissingEmbed boolean Sim false Um valor true faz com que a build falhe quando um artefato incorporado não é encontrado nas dependências do projeto. Um valor false faz com que a build ignore esses erros.
filterSource java.io.File Não Nenhum Esse parâmetro define um arquivo que especifica a origem do filtro do espaço de trabalho. Os filtros especificados na configuração e inseridos por meio de bordas ou subpacotes são unidos ao conteúdo do arquivo.
filters com.day.jcr.vault.maven.pack.impl.DefaultWorkspaceFilter Não Nenhum Esse parâmetro contém elementos de filtro que definem o conteúdo do pacote. Quando executados, os filtros são incluídos no arquivo filter.xml. Consulte a seção Usando Filtros abaixo.
finalName java.lang.String Sim O finalName definido no projeto Maven (fase de compilação) O nome do arquivo ZIP do pacote gerado, sem a extensão de arquivo .zip
group java.lang.String Sim O groupID definido no projeto Maven O groupId do pacote de conteúdo gerado que faz parte do caminho de instalação de destino do pacote de conteúdo
outputDirectory java.io.File Sim O diretório de build definido no projeto Maven O diretório local onde o pacote de conteúdo é salvo
prefix java.lang.String Não Nenhum
project org.apache.maven.project.MavenProject Sim Nenhum O projeto Maven
properties java.util.Map Não Nenhum Esses parâmetros definem propriedades adicionais que podem ser definidas no arquivo properties.xml. Essas propriedades não podem substituir as seguintes propriedades predefinidas: group (use o parâmetro group para definir), name (use o parâmetro name para definir), version (use o parâmetro version para definir), description (definido na descrição do projeto), groupId (groupId do descritor de projeto Maven), artifactId (artifactId de o descritor do projeto Maven), dependencies (use o parâmetro dependencies para definir), createdBy (o valor da propriedade do sistema user.name), created (a hora atual do sistema), requiresRoot (use o parâmetro requiresRoot para definir), <a11 8/> (gerado automaticamente pelo grupo e pelo nome do pacote)packagePath
requiresRoot boolean Sim falso Define se o pacote requer raiz. Isso se tornará a propriedade requiresRoot do arquivo properties.xml.
subPackages java.util.List Não Nenhum
version java.lang.String Sim A versão definida no projeto Maven A versão do pacote de conteúdo
workDirectory java.io.File Sim O diretório definido no projeto Maven (fase de compilação) O diretório que contém o conteúdo a ser incluído no pacote

Uso de filtros

Use o elemento filters para definir o conteúdo do pacote. Os filtros são adicionados ao elemento workspaceFilter no arquivo META-INF/vault/filter.xml do pacote.

O exemplo de filtro a seguir mostra a estrutura XML a ser usada:

<filter>
   <root>/apps/myapp</root>
   <mode>merge</mode>
       <includes>
              <include>/apps/myapp/install/</include>
              <include>/apps/myapp/components</include>
       </includes>
       <excludes>
              <exclude>/apps/myapp/config/*</exclude>
       </excludes>
</filter>
Modo de importação

O elemento mode define como o conteúdo é o repositório é afetado quando o pacote é importado. Os seguintes valores podem ser usados:

  • Mesclar: o conteúdo no pacote que ainda não está no repositório é adicionado. O conteúdo que está no pacote e no repositório não é alterado. Nenhum conteúdo é removido do repositório.
  • Substituir: o conteúdo no pacote que não está no repositório é adicionado ao repositório. O conteúdo no repositório é substituído pelo conteúdo correspondente no pacote. O conteúdo é removido do repositório quando não existe no pacote.
  • Atualização: o conteúdo no pacote que não está no repositório é adicionado ao repositório. O conteúdo no repositório é substituído pelo conteúdo correspondente no pacote. O conteúdo existente é removido do repositório.

Quando o filtro não contém nenhum elemento mode, o valor padrão de replace é usado.

ajuda

Parâmetros

Nome Tipo Obrigatório Valor padrão Descrição
detail boolean Não false Determina se todas as propriedades configuráveis devem ser exibidas para cada meta
goal String Não Nenhum Esses parâmetros definem o nome da meta para a qual será exibida a ajuda. Se nenhum valor for especificado, a ajuda para todas as metas será exibida.
indentSize int Não 2 O número de espaços a serem usados para o recuo de cada nível (deve ser positivo, se definido)
lineLength int Não 80 O comprimento máximo de uma linha de exibição (deve ser positivo, se definido)

Inclusão de uma imagem em miniatura ou arquivo de propriedades no pacote

Substitua os arquivos de configuração padrão do pacote para personalizar as propriedades do pacote. Por exemplo, inclua uma imagem em miniatura para distinguir o pacote no Gerenciador de pacotes e no Compartilhamento de pacotes.

Os arquivos de origem podem estar localizados em qualquer lugar no seu sistema de arquivos. No arquivo POM, defina os recursos de criação para copiar os arquivos de origem para o target/vault-work/META-INF para inclusão no pacote.

O seguinte código POM adiciona os arquivos na pasta META-INF da origem do projeto ao pacote:

<build>
    <resources>
        <!-- vault META-INF resources (thumbnail etc.) -->
        <resource>
            <directory>${basedir}/src/main/content/META-INF</directory>
            <targetPath>../vault-work/META-INF</targetPath>
        </resource>
    </resources>
</build>

O código POM a seguir adiciona apenas uma imagem em miniatura ao pacote. A imagem em miniatura deve ser chamada de thumbnail.png e deve estar localizada na pasta META-INF/vault/definition do pacote. Neste exemplo, o arquivo de origem está localizado na pasta /src/main/content/META-INF/vault/definition do projeto:

<build>
    <resources>
        <!-- thumbnail only -->
        <resource>
            <directory>${basedir}/src/main/content/META-INF/vault/definition</directory>
            <targetPath>../vault-work/META-INF/vault/definition</targetPath>
        </resource>
    </resources>
</build>

Usando o Arquétipo de Projeto AEM para Gerar Projetos AEM

O AEM Project Archetype mais recente implementa a estrutura de pacotes de práticas recomendadas para implementações locais e do AMS e é recomendado para todos os projetos AEM.

DICA

Para obter mais detalhes, consulte o artigo AEM Estrutura do Projeto na documentação do AEM como Cloud Service, bem como a documentação AEM Project Archetype. Ambos são totalmente compatíveis com o AEM 6.5.

Nesta página