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
-
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:* -
Revise a saída para confirmar se a origem é direta ou transitiva e corresponda-a a um dos caminhos de remediação abaixo.
-
Faça referência cruzada com os logs do analisador do Cloud Manager para confirmar quais pacotes importam
com.google.common.*.
Resolução resolution
-
Código personalizado usando o Guava (AEMaaCS, AMS, No local): Substitua os utilitários
com.google.commonpor equivalentes do JDK ou Apache Commons Collections 4. Por exemplo, substituaLists.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
- Execute
mvn dependency:treenovamente e confirme se nenhum módulo foi importadocom.google.common.*. - Verifique os logs do analisador do Cloud Manager após a implantação para confirmar se nenhum aviso de biblioteca obsoleta permanece.
- Confirmar que o Centro de ações não gera mais incidentes de bibliotecas obsoletas.
- Verifique se nenhum pacote personalizado importa
com.google.common.*usando o Console da Web OSGi ou logs de pipeline.