Resolução do uso obsoleto da biblioteca com.google.common (Guava) detectado durante a implantação

As implantações do AEM falham ou acionam alertas da Central de Ações quando a API com.google.common (Google Guava) obsoleta é detectada. O Cloud Manager inspeciona todas as importações de OSGi — incluindo dependências transitivas e de escopo de teste — para que o aviso apareça mesmo quando um projeto não dependa explicitamente do Guava. A correção depende da fonte: ACS AEM Commons desatualizado, pacotes de exemplo de Componentes principais, bibliotecas de teste ou código personalizado que faz referência diretamente aos utilitários Guava. Remover ou substituir a dependência do Guava e, em seguida, reimplantar, limpa o alerta e fecha o incidente do Centro de Ações.

Descrição description

Problema: os sinalizadores do Cloud Manager descontinuaram o uso do com.google.common (Guava) durante a implantação

Descrição

O sinalizador do scanner de descontinuação da API do Cloud Manager e do AEM descontinuou o uso de com.google.common.*. O aviso é exibido mesmo quando um projeto não tem dependência Guava explícita, pois o Cloud Manager inspeciona as importações de OSGi, incluindo dependências transitivas e de escopo de teste. O problema afeta o AEMaaCS, o Managed Services e os ambientes no local.

Ambiente:

  • Adobe Experience Manager as a Cloud Service (AEMaaCS)
  • AEM Managed Services (AMS)
  • AEM 6.5 LTS no local
  • Cloud Manager (pipelines de build e qualidade do código)

Problema/sintomas:

  • Alerta da Central de Ações: Deprecated Library Detected — com.google.common
  • avisos de log do Cloud Manager analyzer referenciando pacotes como com.google.common.collect
  • A etapa Qualidade do código do pipeline pausa ou falha devido ao uso obsoleto da biblioteca
  • O inspetor OSGi confirma a importação de pacotes com.google.common.* mesmo quando é apenas uma dependência de teste transitiva

Causa raiz:

A API com.google.common foi totalmente descontinuada e agendada para remoção no AEM as a Cloud Service. O Cloud Manager sinaliza qualquer pacote que importa com.google.common.*, independentemente de a dependência ser explícita, transitiva ou de escopo de teste. O uso descontinuado pode se originar de versões desatualizadas do ACS AEM Commons, pacotes de exemplo de Componentes principais, io.wcm bibliotecas de teste, slf4j-test, sling-mock, Asset Share Commons ou código personalizado usando utilitários Guava como Lists.partition(). No AEM 6.5 LTS e no local, o Guava não é mais fornecido e não pode ser instalado como um pacote independente devido a sling_bootstrap.txt restrições.

Como confirmar

  1. Execute o seguinte no módulo do pacote principal para identificar todas as dependências que estão sendo extraídas do Guava, incluindo o escopo de teste:

    code language-none
    mvn dependency:tree -Dincludes=com.google.guava:*,com.google.common:*
    
  2. Revise a saída para confirmar se a origem é direta ou transitiva e corresponda-a a um dos caminhos de remediação abaixo.

  3. Faça referência cruzada com os logs do analisador do Cloud Manager para confirmar quais pacotes importam com.google.common.*.

Resolução resolution

  1. Código personalizado usando o Guava (AEMaaCS, AMS, No local): Substitua os utilitários com.google.common por equivalentes do JDK ou Apache Commons Collections 4. Por exemplo, substitua Lists.partition() por uma abordagem de agrupamento baseada em fluxo de Java. Verifique pesquisando o projeto:

    code language-none
    grep -R "com.google.common" ./src
    

Se a remoção do Guava quebrar a funcionalidade no curto prazo, incorpore temporariamente sua própria versão do Guava (consulte a etapa 5) e planeje a refatoração.
​2. ACS AEM Commons puxando Guava (AEMaaCS): Atualize o ACS AEM Commons para pelo menos a versão 6.11.0 e verifique se classifier=cloud está definido de acordo com a orientação oficial. Recrie e verifique a saída do analisador para confirmar se o Guava não é mais relatado.
​3. Pacotes de exemplo dos Componentes Principais (AEMaaCS): Remova todos os core.wcm.components.examples.* pacotes do seu módulo all. Execute mvn clean install novamente e inspecione o pacote de conteúdo compilado para confirmar se o pacote de exemplos desapareceu. Verifique se ele não foi reintroduzido pela herança POM principal.
​4. Dependências transitivas de escopo de teste (AEMaaCS): Remova ou substitua bibliotecas de teste como slf4j-test e io.wcm.testing.aem-mock.* que fazem referência transitiva ao Guava. Executar novamente mvn dependency:tree para confirmar com.google.common não é mais exibido. Se o vazamento persistir, configure o plug-in do pacote para excluir com.google.common.* de Import-Package.
​5. AEM 6.5 No local ou AMS — incorpore o Guava dentro de um pacote personalizado: Se o Guava for necessário, incorpore-o ou coloque-o dentro de um pacote personalizado em vez de instalá-lo como um pacote independente (a instalação independente está bloqueada por sling_bootstrap.txt). Certifique-se de que o pacote não exporte seus pacotes Guava. Implante e confirme se o pacote personalizado mostra um estado Active no Console da Web.
​6. Recompilar e reimplantar: Execute um pipeline completo do Cloud Manager (AEMaaCS) ou implante o pacote OSGi por meio do processo de implantação AMS/Local. Confirme se a etapa Qualidade do código é concluída sem relatar avisos com.google.common.* obsoletos.
​7. Revalidar: para o AEMaaCS, a execução do pipeline completo do Cloud Manager aciona novamente o mesmo verificador que cria incidentes do Centro de Ações. Se nenhum uso obsoleto for detectado, o incidente será resolvido automaticamente. Atualize a Central de Ações para confirmar se o incidente está fechado.

Validação

  1. Execute mvn dependency:tree novamente e confirme se nenhum módulo foi importado com.google.common.*.
  2. Verifique os logs do analisador do Cloud Manager após a implantação para confirmar se nenhum aviso de biblioteca obsoleta permanece.
  3. Confirmar que o Centro de ações não gera mais incidentes de bibliotecas obsoletas.
  4. Verifique se nenhum pacote personalizado importa com.google.common.* usando o Console da Web OSGi ou logs de pipeline.

Leitura relacionada

recommendation-more-help
experience-cloud-kcs-help-kbarticles