Avaliação de aplicação e código das Migrações para Azure para Java versão 7 (versão prévia)

Observação

Este artigo destina-se à próxima geração de avaliação de aplicação e código das Migrações para Azure para Java, versão 7.x. Essa versão está em versão prévia. Para a versão estável anterior, versão 6.x, consulte Avaliação de aplicação e código das Migrações para Azure para Java.

Este artigo mostra como usar a ferramenta de avaliação de aplicação e código das Migrações para Azure para Java para avaliar e alterar a plataforma de qualquer tipo de aplicativo Java. A ferramenta permite que você avalie a preparação do aplicativo para reformular e migrar para o Azure. Essa ferramenta é oferecida como uma CLI (interface de linha de comando) e avalia binários e códigos-fonte de aplicativos Java para identificar oportunidades de alteração de plataforma e migração para o Azure. Ajuda você a modernizar e reformular aplicativos Java em grande escala, identificando casos de uso e padrões de código comuns e propondo alterações recomendadas.

A ferramenta descobre o uso da tecnologia de aplicativo por meio da análise de código estático, fornece estimativa de esforço e acelera a reformulação do código. Essa avaliação ajuda você a priorizar e mover aplicativos Java para o Azure. Com um conjunto de mecanismos e regras, a ferramenta pode descobrir e avaliar diferentes tecnologias, como Java 11, Java 17, Jakarta EE, Spring, Hibernate, JMS (Java Message Service) e muito mais. A ferramenta ajuda você a alterar a plataforma do aplicativo Java para diferentes destinos do Azure (Serviço de Aplicativo do Azure, Serviço de Kubernetes do Azure e Aplicativos de Contêiner do Azure) com regras específicas de alteração de plataforma do Azure.

A ferramenta é baseada em um conjunto de componentes do Cloud Native Computing Foundation, no projeto Konveyor, criado e conduzido pela Red Hat.

Visão geral

A ferramenta foi projetada para ajudar as organizações a modernizar seus aplicativos Java de forma a reduzir custos e habilitar uma inovação mais rápida. A ferramenta usa técnicas avançadas de análise para entender a estrutura e as dependências dos aplicativos Java e fornece diretrizes sobre como refatorar e migrar os aplicativos para o Azure.

Com ela, você pode executar as seguintes tarefas:

  • Descubra o uso da tecnologia: veja rapidamente quais tecnologias um aplicativo usa. A descoberta é útil se você tiver aplicativos herdados com pouca documentação e quiser saber quais tecnologias eles usam.
  • Avalie o código para um destino específico: avalie um aplicativo para um destino específico do Azure. Verifique o esforço e as modificações que você precisa fazer para reformular seus aplicativos no Azure.

Destinos compatíveis

A ferramenta contém regras para ajudar você a reformular seus aplicativos para poder implantar e usar diferentes serviços do Azure.

As regras usadas pela avaliação de aplicação e código das Migrações para Azure são agrupadas com base em um destino. Um destino é onde ou como o aplicativo é executado, além de necessidades e expectativas gerais. Ao avaliar um aplicativo, você pode escolher vários destinos. A tabela a seguir descreve os destinos disponíveis:

Nome de destino Descrição Destino
Serviço de aplicativo do Azure Melhores práticas para implantar um aplicativo no Serviço de Aplicativo do Azure. azure-appservice
Serviço de Kubernetes do Azure Melhores práticas para implantar um aplicativo no Serviço de Kubernetes do Azure. azure-aks
Aplicativos de Contêiner do Azure Melhores práticas para implantar um aplicativo nos Aplicativos de Contêiner do Azure. azure-container-apps
Preparação da nuvem Melhores práticas gerais para preparar uma nuvem de aplicativos (Azure). cloud-readiness
Linux Melhores práticas gerais para preparar um aplicativo Linux. linux
OpenJDK 11 Melhores práticas gerais para executar um aplicativo Java 8 com o Java 11. openjdk11
OpenJDK 17 Melhores práticas gerais para executar um aplicativo Java 11 com o Java 17. openjdk17
OpenJDK 21 Melhores práticas gerais para executar um aplicativo Java 17 com o Java 21. openjdk21

Quando a ferramenta avalia a preparação da nuvem e os serviços relacionados do Azure, ela também pode relatar informações úteis para o uso potencial de diferentes serviços do Azure. A lista a seguir mostra alguns dos serviços abordados:

  • Bancos de dados do Azure
  • Barramento de Serviço do Azure
  • Armazenamento do Azure
  • Rede de Distribuição de Conteúdo do Azure
  • Hubs de eventos do Azure
  • Cofre de Chave do Azure
  • Porta da frente do Azure

Fazer o download e instalar

Para usar a CLI appcat, você deve baixar o pacote específico para seu ambiente e ter as dependências necessárias em seu ambiente. A CLI appcat é executada em qualquer ambiente como Windows, Linux ou Mac, com hardware Intel, Arm ou Apple Silicon. Para o requisito de JDK, recomendamos que você use o Microsoft Build do OpenJDK.

SO Arquitetura Link de download Outros arquivos
x64
Windows x64 Baixar sha256 / Sig
macOS x64 Baixar sha256 / Sig
Linux x64 Baixar sha256 / Sig
AArch64
Windows AArch64/ARM64 Baixar sha256 / Sig
macOS Silício da Apple Baixar sha256 / Sig
Linux AArch64/ARM64 Baixar sha256 / Sig

Pré-requisitos

Instalar o AppCAT

Para instalar appcat, baixe o arquivo zip adequado para sua plataforma. Depois de baixar o arquivo, dependendo do sistema operacional, você deverá encontrar um arquivo .tar.gz (Linux/macOS) ou .zip (Windows).

Extraia o binário do arquivo baixado. Você deverá ver a seguinte estrutura de pastas:

/azure-migrate-appcat-for-java-cli-<OS>-<architecture>-<release-version>-preview/
├── appcat.exe (Windows) / appcat (Linux/macOS)
├── samples/
├── fernflower.jar
├── LICENSE
├── NOTICE.txt
├── maven.default.index
├── jdtls/
├── static-report/
├── rulesets/
├── readme.md
└── readme.html

Executar AppCAT

Para executar appcat de qualquer local no terminal, extraia o arquivo para o local desejado. Em seguida, atualize a PATH variável de ambiente para incluir o diretório onde você extraiu o arquivo compactado.

Observação

Quando o appcat binário é chamado, ele procura primeiro suas dependências na pasta executável especificada na variável de PATH ambiente. Se as dependências não forem encontradas, ela retornará ao diretório base do usuário – ~/.appcat no Linux/Mac ou %USERPROFILE%\.appcat no Windows.

Uso

Subcomandos

AppCAT fornece dois subcomandos para uso:

  • analyze: executa a análise de código-fonte no código-fonte de entrada ou em um binário.
  • transform: converte regras XML de versões anteriores (6 ou mais) para o formato YAML usado por essa versão.

Observação

Para usuários do macOS: se você encontrar um erro informando Apple could not verify ao tentar executar o aplicativo, poderá resolver esse erro usando o seguinte comando:

xattr -d -r com.apple.quarantine /path/to/appcat_binary

Por exemplo:

xattr -d -r com.apple.quarantine $HOME/.appcat/appcat

Subcomando Analyze

O analyze subcomando permite executar o código-fonte e a análise binária.

Para analisar o código-fonte do aplicativo, use o seguinte comando:

./appcat analyze --input=<path-to-source-code> --output=<path-to-output-directory> --target=azure-appservice,cloud-readiness --overwrite

O sinalizador --input deve apontar para um arquivo binário ou um diretório de código-fonte e --output deve apontar para um diretório para armazenar os resultados da análise.

Para obter mais informações sobre os sinalizadores de análise, use o seguinte comando:

./appcat analyze --help

Para verificar os destinos disponíveis para AppCAT, use o seguinte comando:

./appcat analyze --list-targets

Esse comando gera a seguinte saída:

available target technologies:
azure-aks
azure-appservice
azure-container-apps
cloud-readiness
linux
openjdk11
openjdk17
openjdk21

Analisando vários aplicativos

O AppCAT dá suporte a várias análises de aplicativo por execução de comando. Você pode fornecer uma lista de caminhos de entrada separados por vírgulas para o --input flag analisar vários aplicativos em um único comando. O diretório de saída e o relatório estático incluem os resultados combinados de análise para todos os aplicativos.

Para analisar vários aplicativos, use o seguinte comando:

./appcat analyze --input=<path-to-source-A>,<path-to-source-B>,<path-to-source-C> --output=<path-to-output-ABC> --target=<target-name>

O AppCAT também permite que você use a opção --bulk para adicionar de forma incremental mais análises a um diretório de saída e a um relatório estático existentes. Ao usar a opção --bulk , você deve usá-la consistentemente em todas as execuções de comando que gravam na mesma saída.

Observação

Quando você fornece vários caminhos de entrada, --bulk é habilitado por padrão.

Para adicionar de forma incremental mais análise de aplicativo a um relatório estático existente, use o seguinte comando:

./appcat analyze --input=<path-to-source-A>,<path-to-source-B>,<path-to-source-C> --output=<path-to-output-ABC> --target=<target-name>
./appcat analyze --bulk --input=<path-to-source-D> --output=<path-to-output-ABC> --target=<target-name>
./appcat analyze --bulk --input=<path-to-source-E> --output=<path-to-output-ABC> --target=<target-name>

Subcomando de transformação

O transform subcomando permite converter as regras XML anteriores appcat usadas na versão 6.x no novo formato YAML usado por esta versão 7.x.

Para transformar regras, use o seguinte comando:

./appcat transform rules --input=<path-to-xml-rules> --output=<path-to-output-directory>

O sinalizador --input deve apontar para um arquivo ou diretório que contém regras XML e o sinalizador --output deve apontar para o diretório de saída para as regras YAML convertidas.

Amostras

Observação

Verifique se as permissões de arquivo para scripts na pasta extraída estão definidas para permitir a execução.

No diretório de exemplos, você pode encontrar os seguintes scripts para executar diferentes tipos de análise:

  • run-assessment: fornece um relatório com avaliação de código e etapas para migrar o Airsonic para o Serviço de Aplicativo do Azure no Tomcat.
  • run-assessment-transform-rules: converte regras XML do Windup em regras YAML compatíveis com analyzer-lsp.
  • run-assessment-custom-rules: fornece um relatório de avaliação de código usando regras personalizadas (transforma XML em YAML).
  • run-assessment-openjdk21: gera um relatório com avaliação de código e etapas para migrar o Airsonic para o OpenJDK 21.
  • run-assessment-package-only: produz um relatório avaliando pacotes específicos.

Esses scripts devem ser usados com o projeto de exemplo Airsonic-Advanced - um streamer de mídia baseado na Web baseado na comunidade que permite acessar e compartilhar sua coleção de músicas.

Você pode clonar o repositório de aplicativos manualmente usando o seguinte comando:

git clone https://github.com/airsonic-advanced/airsonic-advanced.git

Após a clonagem, forneça o caminho para a pasta clonada ao executar os scripts de avaliação. Dependendo do sistema operacional, execute o script apropriado, conforme mostrado no exemplo a seguir:

Observação

Verifique se você clonou o projeto Airsonic Advanced em um caminho local antes de executar os scripts.

./samples/run-assessment <path-to-airsonic-advanced>

Esses relatórios são gerados e iniciados automaticamente. Você pode encontrar os relatórios em ../samples/report-* (Linux/macOS) ou ..\samples\report-* (Windows).

Resumo da análise

A página inicial do relatório apresenta uma visão resumida de todos os aplicativos analisados. A partir daqui, você pode navegar até relatórios de aplicativos individuais para explorar descobertas detalhadas.

Captura de tela do relatório de resumo do appcat.

O botão Perguntar Copilot no canto superior direito redireciona você para a extensão Modernização do Aplicativo Copilot do GitHub para Java no Visual Studio Code. Essa extensão fornece a avaliação do aplicativo e a correção de código como seus principais recursos para migrar aplicativos Java para o Azure , alimentados pelos recursos de IA do AppCAT e do GitHub Copilot.

Relatório de avaliação

O relatório de avaliação fornece uma lista de problemas categorizada de vários aspectos da preparação do Azure, da nuvem nativa e da modernização do Java que você precisa abordar para migrar com êxito o aplicativo para o Azure.

Cada problema é categorizado por gravidade - obrigatório, opcional ou potencial - e inclui o número de linhas de código afetadas.

As Dependências e Tecnologias exibem as bibliotecas e tecnologias usadas neste aplicativo.

Captura de tela do relatório de avaliação do AppCAT.

Informações detalhadas sobre um problema específico

Para cada problema, você pode obter mais informações (os detalhes do problema, o conteúdo da regra e assim por diante) apenas selecionando-o. Você também obtém a lista de todos os arquivos afetados por esse problema.

Captura de tela do relatório de detalhes do problema do AppCAT.

Em seguida, para cada arquivo ou classe afetada pelo problema, você pode entrar no código-fonte para realçar a linha de código que criou o problema.

Captura de tela do relatório de código do problema do AppCAT.

Notas de versão

7.6.0.7

Esta versão contém as seguintes correções e aprimoramentos.

  • Suporte para analisar aplicativos Spring baseados em Gradle.
  • Suporte para analisar projetos do Open Liberty.
  • Mostre o progresso da avaliação exibindo o número de regras processadas durante a avaliação.
  • Maven removido dos pré-requisitos.
  • airsonic.war substituído por airsonic-advanced como o aplicativo de exemplo nos artefatos liberados.

7.6.0.6

Esta versão contém as seguintes correções e aprimoramentos.

  • Um arquivo .appcat-ignore padrão agora está incluído no pacote de lançamento por padrão. Esse arquivo faz com que a ferramenta exclua pastas ou caminhos especificados que não precisam ser analisados.
  • Correção do problema de dependências ausentes no relatório ao usar o modo full (especificado usando --mode).
  • Análise restrita a alvos suportados pelo AppCAT quando nenhum alvo é especificado.
  • Linhas de comentário ignoradas durante a análise.
  • Corrigida a localização incorreta das regras XML.

7.6.0.5

Esta versão contém as seguintes correções e aprimoramentos.

  • O --input sinalizador agora aceita vários valores, permitindo que você analise vários aplicativos em uma única execução de comando.
  • O relatório estático categoriza sua lista de problemas para melhor legibilidade.
  • Agora, os usuários podem instalar o AppCAT em diretórios diferentes do diretório base do usuário.
  • Correção de um problema em que a execução de analyze com ambos --bulk e --skip-static-report falhava em gerar vários arquivos de saída.
  • Resolveu uma falha ao analisar com --bulk e --rules se nenhum provedor Java foi iniciado.
  • Correção de um problema em que a análise falhava se um pacote especificado não fosse encontrado ao usar o --packages sinalizador.
  • O --exclude-paths sinalizador foi preterido. Para excluir arquivos ou diretórios, use um arquivo .appcat-ignore – com suporte a padrões glob – colocado no diretório de entrada ou no diretório de instalação.

7.6.0.4

Esta versão contém as seguintes correções e aprimoramentos.

  • Dá suporte à coleta de telemetria. Use o --disable-telemetry sinalizador para desabilitar a telemetria.
  • Refatora o formato de comando da CLI para torná-lo mais claro.
    • Atualiza o --source sinalizador, mudando de --source <source1> --source <source2> ... para --source <source1>,<source2>,...
    • Atualiza o --target sinalizador, mudando de --target <target1> --target <target2> ... para --target <target1>,<target2>,...
    • Atualiza o --rules sinalizador, mudando de --rules <rule1> --rules <rule2> ... para --rules <rule1>,<rule2>,...
    • Atualiza o --maven-settings sinalizador para --custom-maven-settings
    • Atualiza o --limit-code-snips sinalizador para --code-snips-number
    • Remove o sinalizador --json-output, usa sinalizador --output-format, escolhe o formato de saída: 'yaml' ou 'json'. (yaml padrão)
    • Remove os sinalizadores --provider, --override-provider-settings, --list-providers e --dependency-folders.
  • Um novo --exclude-paths sinalizador: especifica caminhos que devem ser ignorados na análise. Use uma lista separada por vírgulas para vários valores: --exclude-paths <path1>,<path2>,.... O valor padrão é [].
  • Um novo --packages sinalizador: especifica os pacotes de classe de aplicativo a serem avaliados. Use uma lista separada por vírgulas para vários valores: --packages <package1>,<package2>,.... O valor padrão é [].
  • Um novo --dry-run sinalizador: verifica apenas se os sinalizadores são válidos sem realmente executar a análise. O valor padrão é false.
  • Remove azure-spring-apps do appcat --list-targets.

7.6.0.3

Esta versão contém as seguintes correções e aprimoramentos.

  • Novo sinalizador --limit-code-snips: controle os limites de trechos de código durante a avaliação da regra (0=ilimitado, -1=desabilitar trechos).
  • Correção de falhas de arquivo de dependência ausentes no modo de análise em massa: a ferramenta não anula mais durante a análise em massa para projetos não Java ou projetos Java usando --mode=source-only.

7.6.0.2

Esta versão contém as seguintes correções.

  • java-removals-00150 A regra agora está ativada corretamente.

7.6.0.1

Esta versão contém as seguintes correções e aprimoramentos.

  • Sinalizador --analyze-known-libraries: agora funciona no Windows.
  • Limpeza de diretório: diretórios extras criados durante a análise no Windows agora são limpos automaticamente.
  • Sinalizador --json-output: agora em operação.
  • Erro de análise de regras: o erro unable to parse all the rules for ruleset foi resolvido.
  • Descrições da guia Insights: descrições de regra ausentes agora estão presentes.
  • Dependência de conexão com a Internet: a análise não falha mais sem uma conexão com a Internet.
  • Sinalizador --context-lines: agora se comporta conforme o esperado quando definido como 0.
  • O requisito do Python para executar a ferramenta foi removido.

7.6.0.0

Essa versão é baseada em um conjunto diferente de componentes do projeto Konveyor.

Atualizações gerais

6.3.9.0

Esta versão contém as correções a seguir e inclui um conjunto de novas regras.

Atualizações gerais

  • Alterações integradas do repositório upstream do Windup (versão final 6.3.9).
  • Resolvidos links quebrados nas descrições de regras e no texto de ajuda.

Regras

  • Fila de Mensagens do Azure: novas regras atualizadas e adicionadas para azure-message-queue-rabbitmq e azure-message-queue-amqp.
  • Azure Service Bus: introduziu uma regra de detecção para o Azure Service Bus.
  • MySQL e PostgreSQL: regras refinadas de detecção de dependências.
  • Regras do Azure-AWS: regras existentes aprimoradas e aprimoradas.
  • S3 Spring Starter: adicionada uma regra de detecção para o S3 Spring Starter.
  • RabbitMQ Spring JMS: adicionada uma regra de detecção para RabbitMQ Spring JMS.
  • Regras de registro: regras relacionadas ao registro atualizadas e refinadas.
  • Regra de armazenamento local: atualizou e refinou a regra de armazenamento local.
  • Regra do Sistema de Arquivos do Azure: atualizou e refinou a regra do Sistema de Arquivos do Azure.

Bibliotecas

  • Bibliotecas atualizadas para abordar vulnerabilidades de segurança.

6.3.0.9

Esta versão contém as correções a seguir e inclui um conjunto de novas regras.

  • Resolução de um problema com a regra localhost-java-00001.
  • Introdução de novas regras para identificar tecnologias como AWS S3, AWS SQS, Alibaba Cloud OSS, Alibaba Cloud SMS, Alibaba Scheduler X, Alibaba Cloud Seata e Alibaba Rocket MQ.
  • Atualização de azure-file-system-02000 para passar a dar suporte a extensões de arquivo XML.
  • Upgrade de diversas bibliotecas para resolver vulnerabilidades de segurança.

6.3.0.8

Anteriormente, um conjunto de destinos era habilitado por padrão, dificultando a avaliação de aplicativos grandes com muitos problemas relacionados a problemas menos críticos. Para reduzir o ruído em relatórios, os usuários agora devem especificar vários destinos, com o parâmetro --target, ao executar appcat, dando a eles a opção de selecionar apenas os destinos que importam.

6.3.0.7

Versão GA (Disponibilidade geral) da avaliação de aplicação e código das Migrações para Azure.

Problemas conhecidos

7.6.0.7

  • Problemas de regras:
    • As regras azure-system-config-01000 não estão sendo ativadas.
    • A azure-password-01000 regra detecta apenas uma violação, mesmo quando existem várias violações no mesmo arquivo.
  • Um erro no canal Erro do Observador no Windows: Windows system assumed buffer larger than it is, events have likely been missed. Essa mensagem de erro aparece na linha de comando durante trabalhos de execução prolongada no Windows.

7.6.0.6

  • Problemas de regras:
    • As regras azure-system-config-01000 não estão sendo ativadas.
    • A azure-password-01000 regra detecta apenas uma violação, mesmo quando existem várias violações no mesmo arquivo.
  • Um erro no canal Erro do Observador no Windows: Windows system assumed buffer larger than it is, events have likely been missed. Essa mensagem de erro aparece na linha de comando durante trabalhos de execução prolongada no Windows.

7.6.0.5

  • Problemas de regras:
    • As regras azure-system-config-01000 não estão sendo ativadas.
    • A azure-password-01000 regra detecta apenas uma violação, mesmo quando existem várias violações no mesmo arquivo.
  • Um erro no canal Erro do Observador no Windows: Windows system assumed buffer larger than it is, events have likely been missed. Essa mensagem de erro aparece na linha de comando durante trabalhos de execução prolongada no Windows.

7.6.0.4

  • Problemas de regras:
    • As regras azure-system-config-01000 não estão sendo ativadas.
    • A azure-password-01000 regra detecta apenas uma violação, mesmo quando existem várias violações no mesmo arquivo.
  • Um erro no canal Erro do Observador no Windows: Windows system assumed buffer larger than it is, events have likely been missed. Essa mensagem de erro aparece na linha de comando durante trabalhos de execução prolongada no Windows.

7.6.0.3

  • Não há suporte para o sinalizador --overrideProviderSettings.
  • Problemas de regras:
    • As regras de azure-system-config-01000 e http-session-01000 não estão sendo ativadas.
    • A regra FileSystem - Java IO não está sendo disparada.
  • Analisar arquivos WAR no Windows resulta no seguinte erro: Failed to Move Decompiled File. Ocorre um erro ao analisar arquivos WAR no Windows, que é responsável por alguns problemas redundantes criados no sistema operacional Windows.
  • Erro no canal Erro do Observador no Windows: Windows system assumed buffer larger than it is, events have likely been missed. Essa mensagem de erro aparece na linha de comando durante trabalhos de execução prolongada no Windows.
  • Ctrl+C falha ao interromper a análise contínua. Para solucionar, encerre o processo manualmente interrompendo explicitamente o processo.
  • Em relatórios de análise binária, o título do snippet de código mostra um caminho de arquivo incorreto ou inexistente.

7.6.0.2

  • Não há suporte para o sinalizador --overrideProviderSettings.
  • Problemas de regras:
    • As regras de azure-system-config-01000 e http-session-01000 não estão sendo ativadas.
    • A regra FileSystem - Java IO não está sendo disparada.
  • Analisar arquivos WAR no Windows resulta no seguinte erro: Failed to Move Decompiled File. Ocorre um erro ao analisar arquivos WAR no Windows, que é responsável por alguns problemas redundantes criados no sistema operacional Windows.
  • Erro no canal Erro do Observador no Windows: Windows system assumed buffer larger than it is, events have likely been missed. Essa mensagem de erro aparece na linha de comando durante trabalhos de execução prolongada no Windows.
  • Ctrl+C falha ao interromper a análise contínua. Para solucionar, encerre o processo manualmente interrompendo explicitamente o processo.
  • Em relatórios de análise binária, o título do snippet de código mostra um caminho de arquivo incorreto ou inexistente.

7.6.0.1

  • Não há suporte para o sinalizador --overrideProviderSettings.
  • Problemas de regras:
    • As regras azure-system-config-01000, http-session-01000, java-removals-00150 não estão sendo disparadas.
    • A regra FileSystem - Java IO não está sendo disparada.
  • Analisar arquivos WAR no Windows resulta no seguinte erro: Failed to Move Decompiled File. Ocorre um erro ao analisar arquivos WAR no Windows, que é responsável por alguns problemas redundantes criados no sistema operacional Windows.
  • Erro no canal Erro do Observador no Windows: Windows system assumed buffer larger than it is, events have likely been missed. Essa mensagem de erro aparece na linha de comando durante trabalhos de execução prolongada no Windows.
  • Ctrl+C falha ao interromper a análise contínua. Para solucionar, encerre o processo manualmente interrompendo explicitamente o processo.
  • Em relatórios de análise binária, o título do snippet de código mostra um caminho de arquivo incorreto ou inexistente.

7.6.0.0

  • O sinalizador --analyze-known-libraries não está funcionando no Windows.
  • No Windows, as pastas adicionais a seguir são geradas durante o processo de análise, mas não são removidas automaticamente após a conclusão. Talvez você queira remover essas pastas adicionais após a conclusão da análise.
    • metadata.
    • org.eclipse.osgi
    • org.eclipse.equinox.app
    • org.eclipse.core.runtime
    • org.eclipse.equinox.launcher
  • Não há suporte para o sinalizador --overrideProviderSettings.
  • Não há suporte para o sinalizador --json-output. Em uma versão futura, ele gera saídas JSON para os arquivos output.yaml e dependency.yaml.
  • Problemas de regras:
    • As regras azure-system-config-01000, http-session-01000, java-removals-00150 não estão sendo disparadas.
    • A regra FileSystem - Java IO não está sendo disparada.
    • Erro unable to parse all the rules for ruleset ao executar a análise. Esse erro ocorre durante a análise quando a ferramenta falha ao analisar todas as regras no conjunto de regras.
  • Analisar arquivos WAR no Windows resulta no seguinte erro: Failed to Move Decompiled File. Ocorre um erro ao analisar arquivos WAR no Windows, que é responsável por alguns problemas redundantes criados no sistema operacional Windows.
  • Descrições ausentes de algumas regras na guia Insights. Algumas regras de marcação não têm descrições, gerando títulos em branco que aparecem na guia Insights do relatório.
  • Erro no canal Erro do Observador no Windows: Windows system assumed buffer larger than it is, events have likely been missed. Essa mensagem de erro aparece na linha de comando durante trabalhos de execução prolongada no Windows.
  • Essa versão requer uma conexão com a Internet ativa para análise de dependência.
  • Ctrl+C falha ao interromper a análise contínua. Para solucionar, encerre o processo manualmente interrompendo explicitamente o processo.
  • Quando o sinalizador --context-lines é definido como um número 0, ele não funciona conforme o esperado. Esse sinalizador permite que o usuário limite quanto do código-fonte deve aparecer no relatório. Definir para um valor 0 pode não funcionar conforme o esperado.

Licença

A avaliação de aplicação e código das Migrações para Azure para Java é uma ferramenta gratuita e baseada em código aberto.

Coleta de dados

O AppCAT coleta dados de telemetria por padrão. A Microsoft agrega dados coletados para identificar padrões de uso para identificar problemas comuns e melhorar a experiência da CLI do AppCAT. A CLI do Microsoft AppCAT não coleta dados pessoais ou privados. Por exemplo, os dados de uso ajudam a identificar problemas como comandos com baixa taxa de êxito. Essas informações nos ajudam a priorizar nosso trabalho.

Embora apreciemos os insights que esses dados fornecem, também entendemos que nem todos querem enviar dados de uso. Você pode desabilitar a coleta de dados usando o appcat analyze --disable-telemetry comando. Para obter mais informações, consulte nossa política de privacidade .